#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"
+#include "shoot.h"
+#include "player-move.h"
+#include "patron.h"
+#include "monster-status.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 */
};
errr process_pref_file_command(char *buf)
{
int i, j;
- SYMBOL_COLOR n1;
+ TERM_COLOR n1;
SYMBOL_CODE n2;
{
monster_race *r_ptr;
i = (huge)strtol(zz[0], NULL, 0);
- n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
if (i >= max_r_idx) return 1;
r_ptr = &r_info[i];
{
object_kind *k_ptr;
i = (huge)strtol(zz[0], NULL, 0);
- n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
if (i >= max_k_idx) return 1;
k_ptr = &k_info[i];
if (i >= max_f_idx) return 1;
f_ptr = &f_info[i];
- n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[F_LIT_STANDARD] = n1; /* Allow TERM_DARK text */
if (n2) f_ptr->x_char[F_LIT_STANDARD] = n2;
case F_LIT_MAX * 2 + 1:
for (j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
{
- n1 = (SYMBOL_COLOR)strtol(zz[j * 2 + 1], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[j * 2 + 1], NULL, 0);
n2 = (SYMBOL_CODE)strtol(zz[j * 2 + 2], NULL, 0);
if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[j] = n1; /* Allow TERM_DARK text */
if (n2) f_ptr->x_char[j] = n2;
if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
{
j = (byte)strtol(zz[0], NULL, 0);
- n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
misc_to_attr[j] = n1;
misc_to_char[j] = n2;
if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
{
j = (huge)strtol(zz[0], NULL, 0);
- n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
for (i = 1; i < max_k_idx; i++)
{
if (tokenize(buf+2, 2, zz, TOKENIZE_CHECKQUOTE) == 2)
{
j = (byte)strtol(zz[0], NULL, 0) % 128;
- n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n1 = (TERM_COLOR)strtol(zz[1], NULL, 0);
if (n1) tval_to_attr[j] = n1;
return 0;
}
}
break;
- /* Process "X:<str>" -- turn option off */
- /* Process "Y:<str>" -- turn option on */
+ /* Process "X:<str>" -- current_world_ptr->game_turn option off */
+ /* Process "Y:<str>" -- current_world_ptr->game_turn option on */
case 'X':
case 'Y':
for (i = 0; option_info[i].o_desc; i++)
/* Find the colon */
char *t = my_strchr(buf + 2, ':');
- /* Oops */
if (!t) return 1;
/* Nuke the colon */
if (streq(gf_desc[i].name, buf + 2))
{
/* Remember this color set */
- gf_color[gf_desc[i].num] = quark_add(t);
+ gf_color[gf_desc[i].num] = (TERM_COLOR)quark_add(t);
/* Success */
return 0;
* 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];
if (prefix(buf, "FRI:")) strcpy(days[5], buf);
if (prefix(buf, "SAT:")) strcpy(days[6], buf);
}
-
- /* Close it */
my_fclose(fp);
#endif
/* 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, byte 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);
static void display_player_melee_bonus(int hand, int hand_entry)
{
char buf[160];
- int show_tohit = p_ptr->dis_to_h[hand];
- int show_todam = p_ptr->dis_to_d[hand];
+ HIT_PROB show_tohit = p_ptr->dis_to_h[hand];
+ HIT_POINT show_todam = p_ptr->dis_to_d[hand];
object_type *o_ptr = &inventory[INVEN_RARM + hand];
/* Hack -- add in weapon info if known */
show_tohit += p_ptr->skill_thn / BTH_PLUS_ADJ;
/* Melee attacks */
- sprintf(buf, "(%+d,%+d)", show_tohit, show_todam);
+ 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);
char buf[160];
/* Base skill */
- int show_tohit = p_ptr->dis_to_h_b;
- int show_todam = 0;
+ HIT_PROB show_tohit = p_ptr->dis_to_h_b;
+ HIT_POINT show_todam = 0;
/* Range weapon */
object_type *o_ptr = &inventory[INVEN_BOW];
/* Dump speed */
{
int tmp_speed = 0;
- byte attr;
+ TERM_COLOR attr;
int i;
i = p_ptr->pspeed-110;
}
else
{
- if (MON_FAST(&m_list[p_ptr->riding])) tmp_speed += 10;
- if (MON_SLOW(&m_list[p_ptr->riding])) tmp_speed -= 10;
+ if (MON_FAST(¤t_floor_ptr->m_list[p_ptr->riding])) tmp_speed += 10;
+ if (MON_SLOW(¤t_floor_ptr->m_list[p_ptr->riding])) tmp_speed -= 10;
}
if (tmp_speed)
display_player_one_line(ENTRY_SP, format("%4d/%4d", p_ptr->csp , p_ptr->msp), TERM_RED);
/* Dump play time */
- display_player_one_line(ENTRY_PLAY_TIME, format("%.2lu:%.2lu:%.2lu", playtime/(60*60), (playtime/60)%60, playtime%60), TERM_L_GREEN);
+ display_player_one_line(ENTRY_PLAY_TIME, format("%.2lu:%.2lu:%.2lu", current_world_ptr->play_time/(60*60), (current_world_ptr->play_time/60)%60, current_world_ptr->play_time%60), TERM_L_GREEN);
}
/*
* Hack -- pass color info around this file
*/
-static byte likert_color = TERM_WHITE;
+static TERM_COLOR likert_color = TERM_WHITE;
/*!
* @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));
likert_color = TERM_L_DARK;
strcat(dummy, _("最低", "Very Bad"));
}
-
- /* Analyze the value */
- switch ((x / y))
+ else
{
- case 0:
- case 1:
- likert_color = TERM_RED;
- strcat(dummy, _("悪い", "Bad"));
- break;
- case 2:
- likert_color = TERM_L_RED;
- strcat(dummy, _("劣る", "Poor"));
- break;
- case 3:
- case 4:
- likert_color = TERM_ORANGE;
- strcat(dummy, _("普通", "Fair"));
- break;
+ /* Analyze the value */
+ switch ((x / y))
+ {
+ case 0:
+ case 1:
+ likert_color = TERM_RED;
+ strcat(dummy, _("悪い", "Bad"));
+ break;
+ case 2:
+ likert_color = TERM_L_RED;
+ strcat(dummy, _("劣る", "Poor"));
+ break;
- case 5:
- likert_color = TERM_YELLOW;
- strcat(dummy, _("良い", "Good"));
- break;
+ case 3:
+ case 4:
+ likert_color = TERM_ORANGE;
+ strcat(dummy, _("普通", "Fair"));
+ break;
- case 6:
- likert_color = TERM_YELLOW;
- strcat(dummy, _("大変良い", "Very Good"));
- break;
+ case 5:
+ likert_color = TERM_YELLOW;
+ strcat(dummy, _("良い", "Good"));
+ break;
- case 7:
- case 8:
- likert_color = TERM_L_GREEN;
- strcat(dummy, _("卓越", "Excellent"));
- break;
+ case 6:
+ likert_color = TERM_YELLOW;
+ strcat(dummy, _("大変良い", "Very Good"));
+ break;
- case 9:
- case 10:
- case 11:
- case 12:
- case 13:
- likert_color = TERM_GREEN;
- strcat(dummy, _("超越", "Superb"));
- break;
+ case 7:
+ case 8:
+ likert_color = TERM_L_GREEN;
+ strcat(dummy, _("卓越", "Excellent"));
+ break;
- case 14:
- case 15:
- case 16:
- case 17:
- likert_color = TERM_BLUE;
- strcat(dummy, _("英雄的", "Heroic"));
- break;
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ likert_color = TERM_GREEN;
+ strcat(dummy, _("超越", "Superb"));
+ break;
- default:
- likert_color = TERM_VIOLET;
- sprintf(dummy2, _("伝説的[%d]", "Legendary[%d]"),
- (int)((((x / y) - 17) * 5) / 2));
- strcat(dummy, dummy2);
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ likert_color = TERM_BLUE;
+ strcat(dummy, _("英雄的", "Heroic"));
+ break;
- break;
- }
+ default:
+ likert_color = TERM_VIOLET;
+ sprintf(dummy2, _("伝説的[%d]", "Legendary[%d]"),
+ (int)((((x / y) - 17) * 5) / 2));
+ strcat(dummy, dummy2);
+ break;
+ }
+ }
return dummy;
}
int xthn, xthb, xfos, xsrh;
int xdis, xdev, xsav, xstl;
int xdig;
- cptr desc;
+ concptr desc;
int muta_att = 0;
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
int shots, shot_frac;
bool dokubari;
- object_type *o_ptr;
+ object_type *o_ptr;
if (p_ptr->muta2 & MUT2_HORNS) muta_att++;
if (p_ptr->muta2 & MUT2_SCOR_TAIL) muta_att++;
damage[i] = p_ptr->dis_to_d[i] * 100;
if (((p_ptr->pclass == CLASS_MONK) || (p_ptr->pclass == CLASS_FORCETRAINER)) && (empty_hands(TRUE) & EMPTY_HAND_RARM))
{
- int level = p_ptr->lev;
+ PLAYER_LEVEL level = p_ptr->lev;
if (i)
{
damage[i] = 0;
* @todo
* xtra1.c周りと多重実装になっているのを何とかする
*/
-static void player_flags(u32b flgs[TR_FLAG_SIZE])
+static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE])
{
int i;
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);
* @todo
* xtra1.c周りと多重実装になっているのを何とかする
*/
-static void tim_player_flags(u32b flgs[TR_FLAG_SIZE])
+static void tim_player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE])
{
int i;
* @param mode オプション
* @return なし
*/
-static void display_player_equippy(TERM_POSITION y, TERM_POSITION x, u16b mode)
+static void display_player_equippy(TERM_LEN y, TERM_LEN x, BIT_FLAGS16 mode)
{
int i, max_i;
- byte a;
+ TERM_COLOR a;
char c;
object_type *o_ptr;
* @todo
* xtra1.c周りと多重実装になっているのを何とかする
*/
-static void known_obj_immunity(u32b flgs[TR_FLAG_SIZE])
+static void known_obj_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE])
{
int i;
* @todo
* xtra1.c周りと多重実装になっているのを何とかする
*/
-static void player_immunity(u32b flgs[TR_FLAG_SIZE])
+static void player_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE])
{
int i;
* @todo
* xtra1.c周りと多重実装になっているのを何とかする
*/
-static void tim_player_immunity(u32b flgs[TR_FLAG_SIZE])
+static void tim_player_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE])
{
int i;
* @todo
* xtra1.c周りと多重実装になっているのを何とかする
*/
-static void player_vuln_flags(u32b flgs[TR_FLAG_SIZE])
+static void player_vuln_flags(BIT_FLAGS flgs[TR_FLAG_SIZE])
{
int i;
* A struct for storing misc. flags
*/
typedef struct {
- u32b player_flags[TR_FLAG_SIZE];
- u32b tim_player_flags[TR_FLAG_SIZE];
- u32b player_imm[TR_FLAG_SIZE];
- u32b tim_player_imm[TR_FLAG_SIZE];
- u32b player_vuln[TR_FLAG_SIZE];
- u32b known_obj_imm[TR_FLAG_SIZE];
+ BIT_FLAGS player_flags[TR_FLAG_SIZE];
+ BIT_FLAGS tim_player_flags[TR_FLAG_SIZE];
+ BIT_FLAGS player_imm[TR_FLAG_SIZE];
+ BIT_FLAGS tim_player_imm[TR_FLAG_SIZE];
+ BIT_FLAGS player_vuln[TR_FLAG_SIZE];
+ BIT_FLAGS known_obj_imm[TR_FLAG_SIZE];
} all_player_flags;
* @param mode 表示オプション
* @return なし
*/
-static void display_flag_aux(int row, int 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;
/* Check equipment */
for (i = INVEN_RARM; i < max_i; i++)
{
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
object_type *o_ptr;
/* Object */
*/
static void display_player_flag_info(void)
{
- int row;
- int col;
+ TERM_LEN row;
+ TERM_LEN col;
all_player_flags f;
c_put_str(TERM_WHITE, "abcdefghijkl@", row-1, col+8);
#ifdef JP
-display_flag_aux(row+0, col, "耐酸 :", TR_RES_ACID, &f, 0);
-display_flag_aux(row+0, col, "耐酸 :", TR_IM_ACID, &f, DP_IMM);
-display_flag_aux(row+1, col, "耐電撃:", TR_RES_ELEC, &f, 0);
-display_flag_aux(row+1, col, "耐電撃:", TR_IM_ELEC, &f, DP_IMM);
-display_flag_aux(row+2, col, "耐火炎:", TR_RES_FIRE, &f, 0);
-display_flag_aux(row+2, col, "耐火炎:", TR_IM_FIRE, &f, DP_IMM);
-display_flag_aux(row+3, col, "耐冷気:", TR_RES_COLD, &f, 0);
-display_flag_aux(row+3, col, "耐冷気:", TR_IM_COLD, &f, DP_IMM);
-display_flag_aux(row+4, col, "耐毒 :", TR_RES_POIS, &f, 0);
-display_flag_aux(row+5, col, "耐閃光:", TR_RES_LITE, &f, 0);
-display_flag_aux(row+6, col, "耐暗黒:", TR_RES_DARK, &f, 0);
-display_flag_aux(row+7, col, "耐破片:", TR_RES_SHARDS, &f, 0);
-display_flag_aux(row+8, col, "耐盲目:", TR_RES_BLIND, &f, 0);
-display_flag_aux(row+9, col, "耐混乱:", TR_RES_CONF, &f, 0);
+ display_flag_aux(row+0, col, "耐酸 :", TR_RES_ACID, &f, 0);
+ display_flag_aux(row+0, col, "耐酸 :", TR_IM_ACID, &f, DP_IMM);
+ display_flag_aux(row+1, col, "耐電撃:", TR_RES_ELEC, &f, 0);
+ display_flag_aux(row+1, col, "耐電撃:", TR_IM_ELEC, &f, DP_IMM);
+ display_flag_aux(row+2, col, "耐火炎:", TR_RES_FIRE, &f, 0);
+ display_flag_aux(row+2, col, "耐火炎:", TR_IM_FIRE, &f, DP_IMM);
+ display_flag_aux(row+3, col, "耐冷気:", TR_RES_COLD, &f, 0);
+ display_flag_aux(row+3, col, "耐冷気:", TR_IM_COLD, &f, DP_IMM);
+ display_flag_aux(row+4, col, "耐毒 :", TR_RES_POIS, &f, 0);
+ display_flag_aux(row+5, col, "耐閃光:", TR_RES_LITE, &f, 0);
+ display_flag_aux(row+6, col, "耐暗黒:", TR_RES_DARK, &f, 0);
+ display_flag_aux(row+7, col, "耐破片:", TR_RES_SHARDS, &f, 0);
+ display_flag_aux(row+8, col, "耐盲目:", TR_RES_BLIND, &f, 0);
+ display_flag_aux(row+9, col, "耐混乱:", TR_RES_CONF, &f, 0);
#else
display_flag_aux(row+0, col, "Acid :", TR_RES_ACID, &f, 0);
display_flag_aux(row+0, col, "Acid :", TR_IM_ACID, &f, DP_IMM);
c_put_str(TERM_WHITE, "abcdefghijkl@", row-1, col+8);
#ifdef JP
-display_flag_aux(row+0, col, "耐轟音:", TR_RES_SOUND, &f, 0);
-display_flag_aux(row+1, col, "耐地獄:", TR_RES_NETHER, &f, 0);
-display_flag_aux(row+2, col, "耐因混:", TR_RES_NEXUS, &f, 0);
-display_flag_aux(row+3, col, "耐カオ:", TR_RES_CHAOS, &f, 0);
-display_flag_aux(row+4, col, "耐劣化:", TR_RES_DISEN, &f, 0);
-display_flag_aux(row+5, col, "耐恐怖:", TR_RES_FEAR, &f, 0);
-display_flag_aux(row+6, col, "反射 :", TR_REFLECT, &f, 0);
-display_flag_aux(row+7, col, "火炎オ:", TR_SH_FIRE, &f, 0);
-display_flag_aux(row+8, col, "電気オ:", TR_SH_ELEC, &f, 0);
-display_flag_aux(row+9, col, "冷気オ:", TR_SH_COLD, &f, 0);
+ display_flag_aux(row+0, col, "耐轟音:", TR_RES_SOUND, &f, 0);
+ display_flag_aux(row+1, col, "耐地獄:", TR_RES_NETHER, &f, 0);
+ display_flag_aux(row+2, col, "耐因混:", TR_RES_NEXUS, &f, 0);
+ display_flag_aux(row+3, col, "耐カオ:", TR_RES_CHAOS, &f, 0);
+ display_flag_aux(row+4, col, "耐劣化:", TR_RES_DISEN, &f, 0);
+ display_flag_aux(row+5, col, "耐恐怖:", TR_RES_FEAR, &f, 0);
+ display_flag_aux(row+6, col, "反射 :", TR_REFLECT, &f, 0);
+ display_flag_aux(row+7, col, "火炎オ:", TR_SH_FIRE, &f, 0);
+ display_flag_aux(row+8, col, "電気オ:", TR_SH_ELEC, &f, 0);
+ display_flag_aux(row+9, col, "冷気オ:", TR_SH_COLD, &f, 0);
#else
display_flag_aux(row+0, col, "Sound :", TR_RES_SOUND, &f, 0);
display_flag_aux(row+1, col, "Nether:", TR_RES_NETHER, &f, 0);
c_put_str(TERM_WHITE, "abcdefghijkl@", row-1, col+12);
#ifdef JP
-display_flag_aux(row+0, col, "加速 :", TR_SPEED, &f, 0);
-display_flag_aux(row+1, col, "耐麻痺 :", TR_FREE_ACT, &f, 0);
-display_flag_aux(row+2, col, "透明体視認:", TR_SEE_INVIS, &f, 0);
-display_flag_aux(row+3, col, "経験値保持:", TR_HOLD_EXP, &f, 0);
-display_flag_aux(row+4, col, "警告 :", TR_WARNING, &f, 0);
-display_flag_aux(row+5, col, "遅消化 :", TR_SLOW_DIGEST, &f, 0);
-display_flag_aux(row+6, col, "急回復 :", TR_REGEN, &f, 0);
-display_flag_aux(row+7, col, "浮遊 :", TR_LEVITATION, &f, 0);
-display_flag_aux(row+8, col, "永遠光源 :", TR_LITE_1, &f, 0);
-display_flag_aux(row+9, col, "呪い :", 0, &f, DP_CURSE);
+ display_flag_aux(row+0, col, "加速 :", TR_SPEED, &f, 0);
+ display_flag_aux(row+1, col, "耐麻痺 :", TR_FREE_ACT, &f, 0);
+ display_flag_aux(row+2, col, "透明体視認:", TR_SEE_INVIS, &f, 0);
+ display_flag_aux(row+3, col, "経験値保持:", TR_HOLD_EXP, &f, 0);
+ display_flag_aux(row+4, col, "警告 :", TR_WARNING, &f, 0);
+ display_flag_aux(row+5, col, "遅消化 :", TR_SLOW_DIGEST, &f, 0);
+ display_flag_aux(row+6, col, "急回復 :", TR_REGEN, &f, 0);
+ display_flag_aux(row+7, col, "浮遊 :", TR_LEVITATION, &f, 0);
+ display_flag_aux(row+8, col, "永遠光源 :", TR_LITE_1, &f, 0);
+ display_flag_aux(row+9, col, "呪い :", 0, &f, DP_CURSE);
#else
display_flag_aux(row+0, col, "Speed :", TR_SPEED, &f, 0);
display_flag_aux(row+1, col, "FreeAction:", TR_FREE_ACT, &f, 0);
*/
static void display_player_other_flag_info(void)
{
- int row;
- int col;
+ TERM_LEN row;
+ TERM_LEN col;
all_player_flags f;
int row, col;
object_type *o_ptr;
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
byte a;
char c;
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])
sprintf(statmsg, "...You %s after the winning.", streq(p_ptr->died_from, "Seppuku") ? "did Seppuku" : "retired from the adventure");
#endif
}
- else if (!dun_level)
+ else if (!current_floor_ptr->dun_level)
{
#ifdef JP
sprintf(statmsg, "…あなたは%sで%sに殺された。", map_name(), p_ptr->died_from);
else
{
#ifdef JP
- sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", map_name(), (int)dun_level, p_ptr->died_from);
+ sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", map_name(), (int)current_floor_ptr->dun_level, p_ptr->died_from);
#else
- sprintf(statmsg, "...You were killed by %s on level %d of %s.", p_ptr->died_from, dun_level, map_name());
+ sprintf(statmsg, "...You were killed by %s on level %d of %s.", p_ptr->died_from, current_floor_ptr->dun_level, map_name());
#endif
}
}
else if (character_dungeon)
{
- if (!dun_level)
+ if (!current_floor_ptr->dun_level)
{
sprintf(statmsg, _("…あなたは現在、 %s にいる。", "...Now, you are in %s."), map_name());
}
else
{
#ifdef JP
- sprintf(statmsg, "…あなたは現在、 %s の %d 階で探索している。", map_name(), (int)dun_level);
+ sprintf(statmsg, "…あなたは現在、 %s の %d 階で探索している。", map_name(), (int)current_floor_ptr->dun_level);
#else
- sprintf(statmsg, "...Now, you are exploring level %d of %s.", dun_level, map_name());
+ sprintf(statmsg, "...Now, you are exploring level %d of %s.", current_floor_ptr->dun_level, map_name());
#endif
}
}
*/
static void dump_aux_display_player(FILE *fff)
{
- TERM_POSITION x, y;
- byte a;
+ TERM_LEN x, y;
+ TERM_COLOR a;
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--)
{
- monster_type *m_ptr = &m_list[i];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[i];
- if (!m_ptr->r_idx) continue;
+ if (!monster_is_valid(m_ptr)) continue;
if (!is_pet(m_ptr)) continue;
pet_settings = TRUE;
if (!m_ptr->nickname && (p_ptr->riding != i)) continue;
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?? */
- /* process_dungeon_file("w_info.txt", 0, 0, max_wild_y, max_wild_x); */
+ /* process_dungeon_file("w_info.txt", 0, 0, current_world_ptr->max_wild_y, current_world_ptr->max_wild_x); */
/* Print the home */
- st_ptr = &town[1].store[STORE_HOME];
+ st_ptr = &town_info[1].store[STORE_HOME];
/* Home -- if anything there */
if (st_ptr->stock_num)
{
int i;
- TERM_POSITION x = 1;
+ TERM_LEN x = 1;
fprintf(fff, _(" [我が家のアイテム]\n", " [Home Inventory]\n"));
/* Print the home */
- st_ptr = &town[1].store[STORE_MUSEUM];
+ st_ptr = &town_info[1].store[STORE_MUSEUM];
/* Home -- if anything there */
if (st_ptr->stock_num)
{
int i;
- TERM_POSITION x = 1;
+ TERM_LEN x = 1;
fprintf(fff, _(" [博物館のアイテム]\n", " [Museum]\n"));
* @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();
}
(void)make_character_dump(fff);
-
- /* Close it */
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 */
/* Re-open the file if needed */
if (next > line)
{
- /* Close it */
my_fclose(fff);
/* 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;
strcpy (xtmp, "");
if (!get_string(_("ファイル名: ", "File name: "), xtmp, 80)) continue;
-
- /* Close it */
my_fclose(fff);
/* Build the filename */
ffp = my_fopen(buff, "w");
- /* Oops */
if (!(fff && ffp))
{
msg_print(_("ファイルを開けません。", "Failed to open file."));
while (!my_fgets(fff, buff, sizeof(buff)))
my_fputs(ffp, buff, 80);
-
- /* Close it */
my_fclose(fff);
my_fclose(ffp);
/* 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)
/* Kill the player */
p_ptr->is_dead = TRUE;
-
- /* Leaving */
p_ptr->leaving = TRUE;
if (!p_ptr->total_winner)
}
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();
void do_cmd_save_and_exit(void)
{
p_ptr->playing = FALSE;
-
- /* Leaving */
p_ptr->leaving = TRUE;
do_cmd_write_nikki(NIKKI_GAMESTART, 0, _("----ゲーム中断----", "---- Save and Exit Game ----"));
}
* @return なし
* @details
*/
-static void center_string(char *buf, cptr str)
+static void center_string(char *buf, concptr str)
{
int i, j;
if (!(p_ptr->noscore & 0x00FF))
{
/* Ignore people who die in town */
- if (dun_level)
+ if (current_floor_ptr->dun_level)
{
char tmp[128];
- /* XXX XXX XXX "Bones" name */
- sprintf(tmp, "bone.%03d", dun_level);
+ /* "Bones" name */
+ sprintf(tmp, "bone.%03d", current_floor_ptr->dun_level);
/* Build the filename */
path_build(str, sizeof(str), ANGBAND_DIR_BONE, tmp);
/* 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 (!streq(p_ptr->died_from, "ripe") && !streq(p_ptr->died_from, "Seppuku"))
{
- if (dun_level == 0)
+ if (current_floor_ptr->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);
{
if (streq(p_ptr->died_from, "途中終了"))
{
- sprintf(tmp, "地下 %d 階で死んだ", (int)dun_level);
+ sprintf(tmp, "地下 %d 階で死んだ", (int)current_floor_ptr->dun_level);
}
else
{
- sprintf(tmp, "に地下 %d 階で殺された", (int)dun_level);
+ sprintf(tmp, "に地下 %d 階で殺された", (int)current_floor_ptr->dun_level);
}
}
center_string(buf, tmp);
put_str(buf, 15 + extra_line, 11);
}
#else
- (void)sprintf(tmp, "Killed on Level %d", dun_level);
+ (void)sprintf(tmp, "Killed on Level %d", current_floor_ptr->dun_level);
center_string(buf, tmp);
put_str(buf, 14, 11);
static void show_info(void)
{
int i, j, k, l;
- object_type *o_ptr;
+ object_type *o_ptr;
store_type *st_ptr;
/* Hack -- Know everything in the inven/equip */
for (i = 1; i < max_towns; i++)
{
- st_ptr = &town[i].store[STORE_HOME];
+ st_ptr = &town_info[i].store[STORE_HOME];
/* Hack -- Know everything in the home */
for (j = 0; j < st_ptr->stock_num; j++)
/* 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;
/* Homes in the different towns */
for (l = 1; l < max_towns; l++)
{
- st_ptr = &town[l].store[STORE_HOME];
+ st_ptr = &town_info[l].store[STORE_HOME];
/* Home -- if anything there */
if (st_ptr->stock_num)
/* 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);
/* Clear the top line */
prt("", 0, 0);
- /* Hack -- turn off some things */
- disturb(1, 1);
+ /* Hack -- current_world_ptr->game_turn off some things */
+ 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);
}
/* Suicide */
p_ptr->is_dead = TRUE;
-
- /* Leaving */
p_ptr->leaving = TRUE;
/* Close stuff */
/* 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 ----"));