#include "angband.h"
+#include "world.h"
+#include "player-status.h"
+#include "sort.h"
+#include "mutation.h"
+#include "quest.h"
+#include "store.h"
+#include "artifact.h"
+#include "avatar.h"
/*
struct named_num
{
- cptr name; /* The name of this thing */
+ concptr name; /* The name of this thing */
int num; /* A number associated with it */
};
/* Find the colon */
char *t = my_strchr(buf + 2, ':');
- /* Oops */
if (!t) return 1;
/* Nuke the colon */
* result
* </pre>
*/
-cptr process_pref_file_expr(char **sp, char *fp)
+concptr process_pref_file_expr(char **sp, char *fp)
{
- cptr v;
+ concptr v;
char *b;
char *s;
/* Analyze */
if (*s == b1)
{
- const char *p;
- const char *t;
+ concptr p;
+ concptr t;
/* Skip b1 */
s++;
/* First */
t = process_pref_file_expr(&s, &f);
- /* Oops */
if (!*t)
{
/* Nothing */
}
}
- /* Oops */
else
{
while (*s && (f != b2))
/* Save */
(*fp) = f;
-
- /* Save */
(*sp) = s;
-
- /* Result */
return (v);
}
* result
* </pre>
*/
-static errr process_pref_file_aux(cptr name, int preftype)
+static errr process_pref_file_aux(concptr name, int preftype)
{
FILE *fp;
if ((buf[0] == '?') && (buf[1] == ':'))
{
char f;
- cptr v;
+ concptr v;
char *s;
/* Start */
/* Set flag */
bypass = (streq(v, "0") ? TRUE : FALSE);
-
- /* Continue */
continue;
}
/* Set back depth level */
depth_count--;
-
- /* Continue */
continue;
}
msg_format(_("('%s'を解析中)", "Parsing '%s'"), old);
msg_print(NULL);
}
-
- /* Close the file */
my_fclose(fp);
-
- /* Result */
return (err);
}
* allow conditional evaluation and filename inclusion.
* </pre>
*/
-errr process_pref_file(cptr name)
+errr process_pref_file(concptr name)
{
char buf[1024];
/* Use that value */
check_load_value = value;
- /* Done */
break;
}
-
- /* Close the file */
my_fclose(fp);
#endif
* @param attr 項目表示の色
* @return なし
*/
-static void display_player_one_line(int entry, cptr val, TERM_COLOR attr)
+static void display_player_one_line(int entry, concptr val, TERM_COLOR attr)
{
char buf[40];
int row = disp_player_line[entry].row;
int col = disp_player_line[entry].col;
int len = disp_player_line[entry].len;
- cptr head = disp_player_line[entry].header;
+ concptr head = disp_player_line[entry].header;
int head_len = strlen(head);
sprintf(buf, "(%+d,%+d)", (int)show_tohit, (int)show_todam);
/* Dump the bonuses to hit/dam */
- if (!buki_motteruka(INVEN_RARM) && !buki_motteruka(INVEN_LARM))
+ if (!has_melee_weapon(INVEN_RARM) && !has_melee_weapon(INVEN_LARM))
display_player_one_line(ENTRY_BARE_HAND, buf, TERM_L_BLUE);
else if (p_ptr->ryoute)
display_player_one_line(ENTRY_TWO_HANDS, buf, TERM_L_BLUE);
* @param y 技能値に対するランク基準比
* @return なし
*/
-static cptr likert(int x, int y)
+static concptr likert(int x, int y)
{
static char dummy[20] = "", dummy2[20] = "";
memset(dummy, 0, strlen(dummy));
int xthn, xthb, xfos, xsrh;
int xdis, xdev, xsav, xstl;
int xdig;
- cptr desc;
+ concptr desc;
int muta_att = 0;
BIT_FLAGS flgs[TR_FLAG_SIZE];
int shots, shot_frac;
if (p_ptr->pseikaku == SEIKAKU_SEXY)
add_flag(flgs, TR_AGGRAVATE);
+ if (p_ptr->pseikaku == SEIKAKU_CHARGEMAN)
+ add_flag(flgs, TR_RES_CONF);
if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN)
{
add_flag(flgs, TR_RES_BLIND);
* @param mode 表示オプション
* @return なし
*/
-static void display_flag_aux(TERM_LEN row, TERM_LEN col, cptr header,
+static void display_flag_aux(TERM_LEN row, TERM_LEN col, concptr header,
int flag1, all_player_flags *f, u16b mode)
{
int i;
row = 3;
/* Print out the labels for the columns */
-#ifdef JP
-c_put_str(TERM_WHITE, "能力", row, stat_col+1);
-c_put_str(TERM_BLUE, " 基本", row, stat_col+7);
-c_put_str(TERM_L_BLUE, " 種 職 性 装 ", row, stat_col+13);
-c_put_str(TERM_L_GREEN, "合計", row, stat_col+28);
-c_put_str(TERM_YELLOW, "現在", row, stat_col+35);
-#else
- c_put_str(TERM_WHITE, "Stat", row, stat_col+1);
- c_put_str(TERM_BLUE, " Base", row, stat_col+7);
- c_put_str(TERM_L_BLUE, "RacClaPerMod", row, stat_col+13);
- c_put_str(TERM_L_GREEN, "Actual", row, stat_col+26);
- c_put_str(TERM_YELLOW, "Current", row, stat_col+32);
-#endif
-
+ c_put_str(TERM_WHITE, _("能力", "Stat"), row, stat_col+1);
+ c_put_str(TERM_BLUE, _(" 基本", " Base"), row, stat_col+7);
+ c_put_str(TERM_L_BLUE, _(" 種 職 性 装 ", "RacClaPerMod"), row, stat_col+13);
+ c_put_str(TERM_L_GREEN, _("合計", "Actual"), row, stat_col+28);
+ c_put_str(TERM_YELLOW, _("現在", "Current"), row, stat_col+35);
/* Display the stats */
- for (i = 0; i < 6; i++)
+ for (i = 0; i < A_MAX; i++)
{
int r_adj;
/* Process equipment */
for (i = INVEN_RARM; i < INVEN_TOTAL; i++)
{
- /* Access object */
o_ptr = &inventory[i];
/* Acquire "known" flags */
object_flags_known(o_ptr, flgs);
/* Initialize color based of sign of pval. */
- for (stat = 0; stat < 6; stat++)
+ for (stat = 0; stat < A_MAX; stat++)
{
/* Default */
a = TERM_SLATE;
player_flags(flgs);
/* Check stats */
- for (stat = 0; stat < 6; stat++)
+ for (stat = 0; stat < A_MAX; stat++)
{
/* Default */
a = TERM_SLATE;
* Mode 4 = mutations
* </pre>
*/
-void display_player(BIT_FLAGS mode)
+void display_player(int mode)
{
int i;
+ char buf[80];
+ char tmp[64];
- char buf[80];
- char tmp[64];
-
-
- /* XXX XXX XXX */
if ((p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3) && display_mutations)
mode = (mode % 5);
else
/* Display the stats */
- for (i = 0; i < 6; i++)
+ for (i = 0; i < A_MAX; i++)
{
/* Special treatment of "injured" stats */
if (p_ptr->stat_cur[i] < p_ptr->stat_max[i])
char c;
char buf[1024];
- /* Display player */
display_player(0);
/* Dump part of the screen */
int i;
bool pet = FALSE;
bool pet_settings = FALSE;
- char pet_name[80];
+ GAME_TEXT pet_name[MAX_NLEN];
for (i = m_max - 1; i >= 1; i--)
{
int l2 = 0;
int num = 0;
int spellnum[MAX_MONSPELLS];
- s32b f4 = 0, f5 = 0, f6 = 0;
+ BIT_FLAGS f4 = 0, f5 = 0, f6 = 0;
char p[60][80];
int col = 0;
bool pcol = FALSE;
else if (p_ptr->pclass == CLASS_MAGIC_EATER)
{
char s[EATER_EXT][MAX_NLEN];
- OBJECT_TYPE_VALUE tval;
+ OBJECT_TYPE_VALUE tval = 0;
int ext;
- IDX k_idx;
+ KIND_OBJECT_IDX k_idx;
OBJECT_SUBTYPE_VALUE i;
int magic_num;
*/
static void dump_aux_quest(FILE *fff)
{
- IDX i;
- IDX *quest_num;
+ QUEST_IDX i;
+ QUEST_IDX *quest_num;
int dummy;
fprintf(fff, _("\n\n [クエスト情報]\n", "\n\n [Quest Information]\n"));
/* Allocate Memory */
- C_MAKE(quest_num, max_q_idx, IDX);
+ C_MAKE(quest_num, max_q_idx, QUEST_IDX);
/* Sort by compete level */
for (i = 1; i < max_q_idx; i++) quest_num[i] = i;
fputc('\n', fff);
/* Free Memory */
- C_KILL(quest_num, max_q_idx, IDX);
+ C_KILL(quest_num, max_q_idx, QUEST_IDX);
}
IDX k;
long uniq_total = 0;
long norm_total = 0;
- IDX *who;
+ MONRACE_IDX *who;
/* Sort by monster level */
u16b why = 2;
fprintf(fff, _("\n [倒したモンスター]\n\n", "\n [Defeated Monsters]\n\n"));
/* Allocate the "who" array */
- C_MAKE(who, max_r_idx, s16b);
+ C_MAKE(who, max_r_idx, MONRACE_IDX);
/* Count monster kills */
for (k = 1; k < max_r_idx; k++)
else fprintf(fff, "Your current Life Rating is ???.\n\n");
fprintf(fff, "Limits of maximum stats\n");
#endif
- for (v_nr = 0; v_nr < 6; v_nr++)
+ for (v_nr = 0; v_nr < A_MAX; v_nr++)
{
if ((p_ptr->knowledge & KNOW_STAT) || p_ptr->stat_max[v_nr] == p_ptr->stat_max_max[v_nr]) fprintf(fff, "%s 18/%d\n", stat_names[v_nr], p_ptr->stat_max_max[v_nr]-18);
else fprintf(fff, "%s ???\n", stat_names[v_nr]);
static void dump_aux_equipment_inventory(FILE *fff)
{
int i;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
/* Dump the equipment */
if (equip_cnt)
*/
static void dump_aux_home_museum(FILE *fff)
{
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
store_type *st_ptr;
/* Do we need it?? */
* @param name 出力ファイル名
* @return エラーコード
* @details
- * XXX XXX XXX Allow the "full" flag to dump additional info,
+ * Allow the "full" flag to dump additional info,
* and trigger its usage from various places in the code.
*/
-errr file_character(cptr name)
+errr file_character(concptr name)
{
int fd = -1;
FILE *fff = NULL;
if (fd >= 0)
{
char out_val[160];
-
- /* Close the file */
(void)fd_close(fd);
/* Build query */
/* Invalid file */
if (!fff)
{
- /* Message */
prt(_("キャラクタ情報のファイルへの書き出しに失敗しました!", "Character dump failed!"), 0, 0);
(void)inkey();
my_fclose(fff);
- /* Message */
msg_print(_("キャラクタ情報のファイルへの書き出しに成功しました。", "Character dump successful."));
msg_print(NULL);
* You can use any single character in place of the "|".
* </pre>
*/
-static void show_file_aux_line(cptr str, int cy, cptr shower)
+static void show_file_aux_line(concptr str, int cy, concptr shower)
{
static const char tag_str[] = "[[[[";
byte color = TERM_WHITE;
int showercol = len + 1;
int bracketcol = len + 1;
int endcol = len;
- cptr ptr;
+ concptr ptr;
/* Search for a shower string in the line */
if (shower)
* Return FALSE on 'q' to exit from a deep, otherwise TRUE.
* </pre>
*/
-bool show_file(bool show_version, cptr name, cptr what, int line, BIT_FLAGS mode)
+bool show_file(bool show_version, concptr name, concptr what, int line, BIT_FLAGS mode)
{
int i, n, skey;
FILE *fff = NULL;
/* Find this string (if any) */
- cptr find = NULL;
+ concptr find = NULL;
/* Jump to this tag */
- cptr tag = NULL;
+ concptr tag = NULL;
/* Hold strings to find/show */
char finder_str[81];
char back_str[81];
/* String to show */
- cptr shower = NULL;
+ concptr shower = NULL;
/* Filename */
char filename[1024];
/* Redirect the name */
name = filename;
- /* Hack XXX XXX XXX */
+ /* Hack */
if (what)
{
/* Caption */
fff = my_fopen(path, "r");
}
- /* Oops */
if (!fff)
{
- /* Message */
msg_format(_("'%s'をオープンできません。", "Cannot open '%s'."), name);
msg_print(NULL);
- /* Oops */
return (TRUE);
}
/* start from bottom when reverse mode */
if (line == -1) line = ((size-1)/rows)*rows;
-
- /* Clear screen */
Term_clear();
/* Display the file */
/* Hack -- Re-Open the file */
fff = my_fopen(path, "r");
- /* Oops */
if (!fff) return (FALSE);
/* File has been restarted */
/* Dump the next 20, or rows, lines of the file */
for (i = 0; i < rows; )
{
- cptr str = buf;
+ concptr str = buf;
/* Hack -- track the "first" line */
if (!i) line = next;
ffp = my_fopen(buff, "w");
- /* Oops */
if (!(fff && ffp))
{
msg_print(_("ファイルを開けません。", "Failed to open file."));
/* Exit on the q key */
if (skey == 'q') break;
}
-
- /* Close the file */
my_fclose(fff);
/* Escape */
*/
void do_cmd_help(void)
{
- /* Save screen */
screen_save();
/* Peruse the main help file */
(void)show_file(TRUE, _("jhelp.hlp", "help.hlp"), NULL, 0, 0);
-
- /* Load screen */
screen_load();
}
#endif
if (!savefile_base[0] && savefile[0])
{
- cptr s;
+ concptr s;
s = savefile;
while (1)
{
- cptr t;
+ concptr t;
t = my_strstr(s, PATH_SEP);
if (!t)
break;
* Assumes that "display_player(0)" has just been called
* Perhaps we should NOT ask for a name (at "birth()") on
* Unix machines? XXX XXX
- * What a horrible name for a global function. XXX XXX XXX
+ * What a horrible name for a global function.
* </pre>
*/
void get_name(void)
}
else
{
- /* Disturb the player */
- disturb(1, 1);
+ disturb(TRUE, TRUE);
}
/* Clear messages */
msg_print(NULL);
-
- /* Handle stuff */
handle_stuff();
- /* Message */
prt(_("ゲームをセーブしています...", "Saving game..."), 0, 0);
- /* Refresh */
Term_fresh();
/* The player is not dead */
/* Allow suspend again */
signals_handle_tstp();
- /* Refresh */
Term_fresh();
/* Note that the player is not dead */
/* HACK -- don't get sanity blast on updating view */
is_loading_now = FALSE;
- /* Update stuff */
- update_stuff();
+ update_creature(p_ptr);
/* Initialize monster process */
mproc_init();
* @return なし
* @details
*/
-static void center_string(char *buf, cptr str)
+static void center_string(char *buf, concptr str)
{
int i, j;
{
char tmp[128];
- /* XXX XXX XXX "Bones" name */
+ /* "Bones" name */
sprintf(tmp, "bone.%03d", dun_level);
/* Build the filename */
/* Print the text-tombstone */
if (!done)
{
- cptr p;
+ concptr p;
char tmp[160];
char buf[1024];
char dummy[80];
#ifdef JP
int extra_line = 0;
#endif
-
- /* Clear screen */
Term_clear();
/* Build the filename */
{
if (dun_level == 0)
{
- cptr field_name = p_ptr->town_num ? "街" : "荒野";
+ concptr field_name = p_ptr->town_num ? "街" : "荒野";
if (streq(p_ptr->died_from, "途中終了"))
{
sprintf(tmp, "%sで死んだ", field_name);
/* Hack -- Recalculate bonuses */
p_ptr->update |= (PU_BONUS);
-
- /* Handle stuff */
handle_stuff();
/* Flush all input keys */
flush();
- /* Flush messages */
- msg_print(NULL);
+ msg_erase();
/* Describe options */
/* Return means "show on screen" */
if (!out_val[0]) break;
-
- /* Save screen */
screen_save();
/* Dump a character file */
(void)file_character(out_val);
-
- /* Load screen */
screen_load();
}
update_playtime();
-
- /* Display player */
display_player(0);
/* Prompt for inventory */
if (equip_cnt)
{
Term_clear();
- item_tester_full = TRUE;
- (void)show_equip(0);
+ (void)show_equip(0, USE_FULL);
prt(_("装備していたアイテム: -続く-", "You are using: -more-"), 0, 0);
if (inkey() == ESCAPE) return;
if (inven_cnt)
{
Term_clear();
- item_tester_full = TRUE;
- (void)show_inven(0);
+ (void)show_inven(0, USE_FULL);
prt(_("持っていたアイテム: -続く-", "You are carrying: -more-"), 0, 0);
if (inkey() == ESCAPE) return;
/* Display contents of the home */
for (k = 0, i = 0; i < st_ptr->stock_num; k++)
{
- /* Clear screen */
Term_clear();
/* Show 12 items */
for (j = 0; (j < 12) && (i < st_ptr->stock_num); j++, i++)
{
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
char tmp_val[80];
/* Acquire item */
*/
static bool check_score(void)
{
- /* Clear screen */
Term_clear();
/* No score file */
char buf[1024];
bool do_send = TRUE;
-/* cptr p = "[i:キャラクタの情報, f:ファイル書き出し, t:スコア, x:*鑑定*, ESC:ゲーム終了]"; */
-
- /* Handle stuff */
+/* concptr p = "[i:キャラクタの情報, f:ファイル書き出し, t:スコア, x:*鑑定*, ESC:ゲーム終了]"; */
handle_stuff();
/* Flush the messages */
/* Show more info */
show_info();
-
- /* Clear screen */
Term_clear();
if (check_score())
/* Save the game */
do_cmd_save_game(FALSE);
- /* Prompt for scores XXX XXX XXX */
+ /* Prompt for scores */
prt(_("リターンキーか ESC キーを押して下さい。", "Press Return (or Escape)."), 0, 40);
play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_EXIT);
prt("", 0, 0);
/* Hack -- turn off some things */
- disturb(1, 1);
+ disturb(TRUE, TRUE);
/* Mega-Hack -- Delay death */
if (p_ptr->chp < 0) p_ptr->is_dead = FALSE;
* Based on the monster speech patch by Matt Graham,
* </pre>
*/
-errr get_rnd_line(cptr file_name, int entry, char *output)
+errr get_rnd_line(concptr file_name, int entry, char *output)
{
FILE *fp;
char buf[1024];
/* Copy the line */
if (one_in_(counter + 1)) strcpy(output, buf);
}
-
- /* Close the file */
my_fclose(fp);
/* Success */
* @return エラーコード
* @details
*/
-errr get_rnd_line_jonly(cptr file_name, int entry, char *output, int count)
+errr get_rnd_line_jonly(concptr file_name, int entry, char *output, int count)
{
int i, j, kanji;
errr result = 1;
* @param name ファイル名
* @details
*/
-errr process_autopick_file(cptr name)
+errr process_autopick_file(concptr name)
{
char buf[1024];
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, name);
err = process_pref_file_aux(buf, PREF_TYPE_AUTOPICK);
-
- /* Result */
return (err);
}
* @return エラーコード
* @details
*/
-errr process_histpref_file(cptr name)
+errr process_histpref_file(concptr name)
{
char buf[1024];
errr err = 0;
err = process_pref_file_aux(buf, PREF_TYPE_HISTPREF);
character_xtra = old_character_xtra;
-
- /* Result */
return (err);
}
/* Display the cause */
Term_putstr(0, 0, -1, TERM_WHITE, _("熟慮の上の自殺!", "Contemplating suicide!"));
- /* Flush */
Term_fresh();
}
_("恐ろしいソフトのバグが飛びかかってきた!", "A gruesome software bug LEAPS out at you!"));
- /* Message */
Term_putstr(45, hgt - 1, -1, TERM_RED, _("緊急セーブ...", "Panic save..."));
do_cmd_write_nikki(NIKKI_GAMESTART, 0, _("----ゲーム異常終了----", "---- Panic Save and Abort Game ----"));