bool level_mutation = FALSE;
bool level_inc_stat = FALSE;
bool android = (p_ptr->prace == RACE_ANDROID ? TRUE : FALSE);
- int old_lev = p_ptr->lev;
+ PLAYER_LEVEL old_lev = p_ptr->lev;
/* Hack -- lower limit */
if (p_ptr->exp < 0) p_ptr->exp = 0;
* Used to allocate proper treasure when "Creeping coins" die
* XXX XXX XXX Note the use of actual "monster names"
*/
-static int get_coin_type(int r_idx)
+static int get_coin_type(MONRACE_IDX r_idx)
{
/* Analyze monsters */
switch (r_idx)
* @param k_idx 判定したいオブジェクトのベースアイテムID
* @return オブジェクトがクロークならばTRUEを返す
*/
-static bool kind_is_cloak(int k_idx)
+static bool kind_is_cloak(KIND_OBJECT_IDX k_idx)
{
object_kind *k_ptr = &k_info[k_idx];
* @param k_idx 判定したいオブジェクトのベースアイテムID
* @return オブジェクトが竿状武器ならばTRUEを返す
*/
-static bool kind_is_polearm(int k_idx)
+static bool kind_is_polearm(KIND_OBJECT_IDX k_idx)
{
object_kind *k_ptr = &k_info[k_idx];
* @param k_idx 判定したいオブジェクトのベースアイテムID
* @return オブジェクトが剣ならばTRUEを返す
*/
-static bool kind_is_sword(int k_idx)
+static bool kind_is_sword(KIND_OBJECT_IDX k_idx)
{
object_kind *k_ptr = &k_info[k_idx];
* @param k_idx 判定したいオブジェクトのベースアイテムID
* @return オブジェクトが魔法書ならばTRUEを返す
*/
-static bool kind_is_book(int k_idx)
+static bool kind_is_book(KIND_OBJECT_IDX k_idx)
{
object_kind *k_ptr = &k_info[k_idx];
* @param k_idx 判定したいオブジェクトのベースアイテムID
* @return オブジェクトがベースアイテム時点でGOODなアイテムならばTRUEを返す
*/
-static bool kind_is_good_book(int k_idx)
+static bool kind_is_good_book(KIND_OBJECT_IDX k_idx)
{
object_kind *k_ptr = &k_info[k_idx];
* @param k_idx 判定したいオブジェクトのベースアイテムID
* @return オブジェクトが鎧ならばTRUEを返す
*/
-static bool kind_is_armor(int k_idx)
+static bool kind_is_armor(KIND_OBJECT_IDX k_idx)
{
object_kind *k_ptr = &k_info[k_idx];
* @param k_idx 判定したいオブジェクトのベースアイテムID
* @return オブジェクトが打撃武器ならばTRUEを返す
*/
-static bool kind_is_hafted(int k_idx)
+static bool kind_is_hafted(KIND_OBJECT_IDX k_idx)
{
object_kind *k_ptr = &k_info[k_idx];
{
for (y = 0; y < cur_hgt; ++ y)
{
- int m_idx = cave[y][x].m_idx;
+ MONSTER_IDX m_idx = cave[y][x].m_idx;
if (m_idx > 0 && is_hostile(&m_list[m_idx]))
{
{
int i;
- for (i = max_quests - 1; i > 0; i--)
+ for (i = max_q_idx - 1; i > 0; i--)
{
quest_type* const q_ptr = &quest[i];
{
int i;
/* Check if completed a quest */
- for (i = 0; i < max_quests; i++)
+ for (i = 0; i < max_q_idx; i++)
{
if ((quest[i].type == QUEST_TYPE_FIND_ARTIFACT) &&
(quest[i].status == QUEST_STATUS_TAKEN) &&
* it drops all of its objects, which may disappear in crowded rooms.
* </pre>
*/
-void monster_death(int m_idx, bool drop_item)
+void monster_death(MONSTER_IDX m_idx, bool drop_item)
{
int i, j, y, x;
{
if (r_ptr->blow[i].method == RBM_EXPLODE)
{
- int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
int typ = mbe_info[r_ptr->blow[i].effect].explode_type;
DICE_NUMBER d_dice = r_ptr->blow[i].d_dice;
DICE_SID d_side = r_ptr->blow[i].d_side;
{
int wy = y, wx = x;
bool pet = is_pet(m_ptr);
- u32b mode = 0L;
+ BIT_FLAGS mode = 0L;
if (pet) mode |= PM_FORCE_PET;
if (attempts > 0)
{
- u32b mode = 0L;
+ BIT_FLAGS mode = 0L;
if (pet) mode |= PM_FORCE_PET;
if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_DAWN, mode))
case MON_UNMAKER:
/* One more ultra-hack: An Unmaker goes out with a big bang! */
{
- int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
(void)project(m_idx, 6, y, x, 100, GF_CHAOS, flg, -1);
}
break;
case MON_ROLENTO:
{
- int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
(void)project(m_idx, 3, y, x, damroll(20, 10), GF_FIRE, flg, -1);
}
break;
if ((r_ptr->flags7 & RF7_GUARDIAN) && (d_info[dungeon_type].final_guardian == m_ptr->r_idx))
{
- int k_idx = d_info[dungeon_type].final_object ? d_info[dungeon_type].final_object
+ IDX k_idx = d_info[dungeon_type].final_object ? d_info[dungeon_type].final_object
: lookup_kind(TV_SCROLL, SV_SCROLL_ACQUIREMENT);
if (d_info[dungeon_type].final_artifact)
* experience point of a monster later.
* </pre>
*/
-static void get_exp_from_mon(int dam, monster_type *m_ptr)
+static void get_exp_from_mon(HIT_POINT dam, monster_type *m_ptr)
{
monster_race *r_ptr = &r_info[m_ptr->r_idx];
* to induce changes in the monster recall code.
* </pre>
*/
-bool mon_take_hit(int m_idx, int dam, bool *fear, cptr note)
+bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note)
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
{
int dummy_y = m_ptr->fy;
int dummy_x = m_ptr->fx;
- u32b mode = 0L;
+ BIT_FLAGS mode = 0L;
if (is_pet(m_ptr)) mode |= PM_FORCE_PET;
/*
* Monster health description
*/
-cptr look_mon_desc(monster_type *m_ptr, u32b mode)
+cptr look_mon_desc(monster_type *m_ptr, BIT_FLAGS mode)
{
monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx];
bool living;
* Future versions may restrict the ability to target "trappers"
* and "mimics", but the semantics is a little bit weird.
*/
-bool target_able(int m_idx)
+bool target_able(MONSTER_IDX m_idx)
{
monster_type *m_ptr = &m_list[m_idx];
*/
static bool ang_sort_comp_distance(vptr u, vptr v, int a, int b)
{
- byte *x = (byte*)(u);
- byte *y = (byte*)(v);
+ POSITION *x = (POSITION*)(u);
+ POSITION *y = (POSITION*)(v);
- int da, db, kx, ky;
+ POSITION da, db, kx, ky;
/* Absolute distance components */
kx = x[a]; kx -= p_ptr->x; kx = ABS(kx);
*/
static bool ang_sort_comp_importance(vptr u, vptr v, int a, int b)
{
- byte *x = (byte*)(u);
- byte *y = (byte*)(v);
+ POSITION *x = (POSITION*)(u);
+ POSITION *y = (POSITION*)(v);
cave_type *ca_ptr = &cave[y[a]][x[a]];
cave_type *cb_ptr = &cave[y[b]][x[b]];
monster_type *ma_ptr = &m_list[ca_ptr->m_idx];
*/
static void ang_sort_swap_distance(vptr u, vptr v, int a, int b)
{
- byte *x = (byte*)(u);
- byte *y = (byte*)(v);
+ POSITION *x = (POSITION*)(u);
+ POSITION *y = (POSITION*)(v);
- byte temp;
+ POSITION temp;
/* Swap "x" */
temp = x[a];
/*
* Hack -- help "select" a location (see below)
*/
-static s16b target_pick(int y1, int x1, int dy, int dx)
+static POSITION_IDX target_pick(POSITION y1, POSITION x1, POSITION dy, POSITION dx)
{
- int i, v;
-
- int x2, y2, x3, y3, x4, y4;
-
- int b_i = -1, b_v = 9999;
+ POSITION_IDX i, v;
+ POSITION x2, y2, x3, y3, x4, y4;
+ POSITION_IDX b_i = -1, b_v = 9999;
/* Scan the locations */
*
* Return the number of target_able monsters in the set.
*/
-static void target_set_prepare(int mode)
+static void target_set_prepare(BIT_FLAGS mode)
{
int y, x;
int min_hgt, max_hgt, min_wid, max_wid;
*
* This function must handle blindness/hallucination.
*/
-static int target_set_aux(int y, int x, int mode, cptr info)
+static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info)
{
cave_type *c_ptr = &cave[y][x];
s16b this_o_idx, next_o_idx = 0;
bool boring = TRUE;
s16b feat;
feature_type *f_ptr;
- int query = '\001';
+ char query = '\001';
char out_val[MAX_NLEN+80];
#ifdef ALLOW_EASY_FLOOR
- int floor_list[23], floor_num = 0;
+ OBJECT_IDX floor_list[23];
+ ITEM_NUMBER floor_num = 0;
/* Scan all objects in the grid */
if (easy_floor)
/* Display rough information about items */
#ifdef JP
sprintf(out_val, "%s %d個のアイテム%s%s ['x'で一覧, %s]",
- s1, floor_num, s2, s3, info);
+ s1, (int)floor_num, s2, s3, info);
#else
sprintf(out_val, "%s%s%sa pile of %d items [x,%s]",
- s1, s2, s3, floor_num, info);
+ s1, s2, s3, (int)floor_num, info);
#endif
prt(out_val, 0, 0);
/* Prompt */
#ifdef JP
sprintf(out_val, "%s %d個のアイテム%s%s [Enterで次へ, %s]",
- s1, floor_num, s2, s3, info);
+ s1, (int)floor_num, s2, s3, info);
#else
sprintf(out_val, "%s%s%sa pile of %d items [Enter,%s]",
- s1, s2, s3, floor_num, info);
+ s1, s2, s3, (int)floor_num, info);
#endif
prt(out_val, 0, 0);
if (c_ptr->mimic) sprintf(f_idx_str, "%d/%d", c_ptr->feat, c_ptr->mimic);
else sprintf(f_idx_str, "%d", c_ptr->feat);
#ifdef JP
- sprintf(out_val, "%s%s%s%s[%s] %x %s %d %d %d (%d,%d) %d", s1, name, s2, s3, info, c_ptr->info, f_idx_str, c_ptr->dist, c_ptr->cost, c_ptr->when, y, x, travel.cost[y][x]);
+ sprintf(out_val, "%s%s%s%s[%s] %x %s %d %d %d (%d,%d) %d", s1, name, s2, s3, info, (unsigned int)c_ptr->info, f_idx_str, c_ptr->dist, c_ptr->cost, c_ptr->when, (int)y, (int)x, travel.cost[y][x]);
#else
- sprintf(out_val, "%s%s%s%s [%s] %x %s %d %d %d (%d,%d)", s1, s2, s3, name, info, c_ptr->info, f_idx_str, c_ptr->dist, c_ptr->cost, c_ptr->when, y, x);
+ sprintf(out_val, "%s%s%s%s [%s] %x %s %d %d %d (%d,%d)", s1, s2, s3, name, info, c_ptr->info, f_idx_str, c_ptr->dist, c_ptr->cost, c_ptr->when, (int)y, (int)x);
#endif
}
else
* This command will cancel any old target, even if used from
* inside the "look" command.
*/
-bool target_set(int mode)
+bool target_set(BIT_FLAGS mode)
{
int i, d, m, t, bd;
POSITION y = p_ptr->y;
POSITION x = p_ptr->x;
bool done = FALSE;
-
bool flag = TRUE;
-
char query;
-
char info[80];
-
char same_key;
cave_type *c_ptr;
strcpy(info, _("q止 t決 p自 m近 +次 -前", "q,t,p,m,+,-,<dir>"));
/* Describe and Prompt (enable "TARGET_LOOK") */
- while (!(query = target_set_aux(y, x, mode | TARGET_LOOK, info)));
+ while ((query = target_set_aux(y, x, mode | TARGET_LOOK, info)) == 0);
/* Cancel tracking */
/* health_track(0); */
*
* Note that confusion over-rides any (explicit?) user choice.
*/
-bool get_aim_dir(int *dp)
+bool get_aim_dir(DIRECTION *dp)
{
- int dir;
-
+ DIRECTION dir;
char command;
-
cptr p;
+ COMMAND_CODE code;
/* Initialize */
(*dp) = 0;
#ifdef ALLOW_REPEAT /* TNB */
- if (repeat_pull(dp))
+ if (repeat_pull(&code))
{
/* Confusion? */
/* Verify */
- if (!(*dp == 5 && !target_okay()))
+ if (!(code == 5 && !target_okay()))
{
/* return (TRUE); */
- dir = *dp;
+ dir = (DIRECTION)code;
}
}
+ *dp = (DIRECTION)code;
#endif /* ALLOW_REPEAT -- TNB */
#ifdef ALLOW_REPEAT /* TNB */
/* repeat_push(dir); */
- repeat_push(command_dir);
+ repeat_push((COMMAND_CODE)command_dir);
#endif /* ALLOW_REPEAT -- TNB */
* This function tracks and uses the "global direction", and uses
* that as the "desired direction", to which "confusion" is applied.
*/
-bool get_rep_dir(int *dp, bool under)
+bool get_rep_dir(DIRECTION *dp, bool under)
{
- int dir;
+ DIRECTION dir;
cptr prompt;
+ COMMAND_CODE code;
/* Initialize */
(*dp) = 0;
#ifdef ALLOW_REPEAT /* TNB */
- if (repeat_pull(dp))
+ if (repeat_pull(&code))
{
- dir = *dp;
+ dir = (DIRECTION)code;
/* return (TRUE); */
}
+ *dp = (DIRECTION)code;
#endif /* ALLOW_REPEAT -- TNB */
#ifdef ALLOW_REPEAT /* TNB */
/* repeat_push(dir); */
- repeat_push(command_dir);
+ repeat_push((COMMAND_CODE)command_dir);
#endif /* ALLOW_REPEAT -- TNB */
}
-bool get_rep_dir2(int *dp)
+bool get_rep_dir2(DIRECTION *dp)
{
- int dir;
+ DIRECTION dir;
+ COMMAND_CODE code;
/* Initialize */
(*dp) = 0;
#ifdef ALLOW_REPEAT /* TNB */
- if (repeat_pull(dp))
+ if (repeat_pull(&code))
{
- dir = *dp;
+ dir = (DIRECTION)code;
/* return (TRUE); */
}
+ *dp = (DIRECTION)code;
#endif /* ALLOW_REPEAT -- TNB */
#ifdef ALLOW_REPEAT /* TNB */
/* repeat_push(dir); */
- repeat_push(command_dir);
+ repeat_push((COMMAND_CODE)command_dir);
#endif /* ALLOW_REPEAT -- TNB */
}
-bool get_hack_dir(int *dp)
+bool get_hack_dir(DIRECTION *dp)
{
- int dir;
+ DIRECTION dir;
cptr p;
char command;
-
/* Initialize */
(*dp) = 0;
}
-/*
- * Return bow energy
+/*!
+ * @brief 射撃武器の攻撃に必要な基本消費エネルギーを返す/Return bow energy
+ * @param sval 射撃武器のアイテム副分類ID
+ * @return 消費する基本エネルギー
*/
-s16b bow_energy(int sval)
+ENERGY bow_energy(OBJECT_SUBTYPE_VALUE sval)
{
- int energy = 100;
+ ENERGY energy = 10000;
/* Analyze the launcher */
switch (sval)
/*
* Return bow tmul
*/
-int bow_tmul(int sval)
+int bow_tmul(OBJECT_SUBTYPE_VALUE sval)
{
int tmul = 0;
* Display a rumor and apply its effects
*/
-int rumor_num(char *zz, int max_idx)
+IDX rumor_num(char *zz, IDX max_idx)
{
if (strcmp(zz, "*") == 0) return randint1(max_idx - 1);
- return atoi(zz);
+ return (IDX)atoi(zz);
}
cptr rumor_bind_name(char *base, cptr fullname)
void display_rumor(bool ex)
{
- bool err;
+ errr err;
int section = 0;
char Rumor[1024];
}
else if (strcmp(zz[0], "MONSTER") == 0)
{
- int r_idx;
+ MONRACE_IDX r_idx;
monster_race *r_ptr;
while(1)
}
else if (strcmp(zz[0], "TOWN") == 0)
{
- int t_idx;
+ IDX t_idx;
s32b visit;
while(1)