OSDN Git Service

#37287 #37353 (2.2.0.89) 型の置換を継続中。 / Ongoing type replacement.
[hengband/hengband.git] / src / spells3.c
index 70bff91..ebcbf84 100644 (file)
@@ -27,7 +27,7 @@
  * @param mode オプション
  * @return テレポート先として妥当ならばtrue
  */
-static bool cave_monster_teleportable_bold(int m_idx, int y, int x, u32b mode)
+static bool cave_monster_teleportable_bold(MONSTER_IDX m_idx, int y, int x, u32b mode)
 {
        monster_type *m_ptr = &m_list[m_idx];
        cave_type    *c_ptr = &cave[y][x];
@@ -63,11 +63,11 @@ static bool cave_monster_teleportable_bold(int m_idx, int y, int x, u32b mode)
  * Attempt to move the monster at least "dis/2" grids away.
  * But allow variation to prevent infinite loops.
  */
-bool teleport_away(int m_idx, int dis, u32b mode)
+bool teleport_away(MONSTER_IDX m_idx, int dis, u32b mode)
 {
        int oy, ox, d, i, min;
        int tries = 0;
-       int ny = 0, nx = 0;
+       POSITION ny = 0, nx = 0;
 
        bool look = TRUE;
 
@@ -178,7 +178,7 @@ bool teleport_away(int m_idx, int dis, u32b mode)
  * @param mode オプション
  * @return なし
  */
-void teleport_monster_to(int m_idx, int ty, int tx, int power, u32b mode)
+void teleport_monster_to(MONSTER_IDX m_idx, POSITION ty, POSITION tx, int power, u32b mode)
 {
        int ny, nx, oy, ox, d, i, min;
        int attempts = 500;
@@ -348,12 +348,13 @@ bool teleport_player_aux(int dis, u32b mode)
 {
        int candidates_at[MAX_TELEPORT_DISTANCE + 1];
        int total_candidates, cur_candidates;
-       int y = 0, x = 0, min, pick, i;
+       POSITION y = 0, x = 0;
+       int min, pick, i;
 
-       int left = MAX(1, px - dis);
-       int right = MIN(cur_wid - 2, px + dis);
-       int top = MAX(1, py - dis);
-       int bottom = MIN(cur_hgt - 2, py + dis);
+       int left = MAX(1, p_ptr->x - dis);
+       int right = MIN(cur_wid - 2, p_ptr->x + dis);
+       int top = MAX(1, p_ptr->y - dis);
+       int bottom = MIN(cur_hgt - 2, p_ptr->y + dis);
 
        if (p_ptr->wild_mode) return FALSE;
 
@@ -382,7 +383,7 @@ bool teleport_player_aux(int dis, u32b mode)
                        if (!cave_player_teleportable_bold(y, x, mode)) continue;
 
                        /* Calculate distance */
-                       d = distance(py, px, y, x);
+                       d = distance(p_ptr->y, p_ptr->x, y, x);
 
                        /* Skip too far locations */
                        if (d > dis) continue;
@@ -421,7 +422,7 @@ bool teleport_player_aux(int dis, u32b mode)
                        if (!cave_player_teleportable_bold(y, x, mode)) continue;
 
                        /* Calculate distance */
-                       d = distance(py, px, y, x);
+                       d = distance(p_ptr->y, p_ptr->x, y, x);
 
                        /* Skip too far locations */
                        if (d > dis) continue;
@@ -445,7 +446,7 @@ bool teleport_player_aux(int dis, u32b mode)
 
 #ifdef JP
        if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
-               msg_format("『こっちだぁ、%s』", player_name);
+               msg_format("『こっちだぁ、%s』", p_ptr->name);
 #endif
 
        /* Move the player */
@@ -465,8 +466,8 @@ void teleport_player(int dis, u32b mode)
        int yy, xx;
 
        /* Save the old location */
-       int oy = py;
-       int ox = px;
+       int oy = p_ptr->y;
+       int ox = p_ptr->x;
 
        if (!teleport_player_aux(dis, mode)) return;
 
@@ -475,7 +476,7 @@ void teleport_player(int dis, u32b mode)
        {
                for (yy = -1; yy < 2; yy++)
                {
-                       int tmp_m_idx = cave[oy+yy][ox+xx].m_idx;
+                       MONSTER_IDX tmp_m_idx = cave[oy+yy][ox+xx].m_idx;
 
                        /* A monster except your mount may follow */
                        if (tmp_m_idx && (p_ptr->riding != tmp_m_idx))
@@ -487,10 +488,10 @@ void teleport_player(int dis, u32b mode)
                                 * The latter limitation is to avoid
                                 * totally unkillable suckers...
                                 */
-                               if ((r_ptr->flags6 & RF6_TPORT) &&
+                               if ((r_ptr->a_ability_flags2 & RF6_TPORT) &&
                                    !(r_ptr->flagsr & RFR_RES_TELE))
                                {
-                                       if (!MON_CSLEEP(m_ptr)) teleport_monster_to(tmp_m_idx, py, px, r_ptr->level, 0L);
+                                       if (!MON_CSLEEP(m_ptr)) teleport_monster_to(tmp_m_idx, p_ptr->y, p_ptr->x, r_ptr->level, 0L);
                                }
                        }
                }
@@ -504,13 +505,13 @@ void teleport_player(int dis, u32b mode)
  * @param dis テレポート距離
  * @return なし
  */
-void teleport_player_away(int m_idx, int dis)
+void teleport_player_away(MONSTER_IDX m_idx, int dis)
 {
        int yy, xx;
 
        /* Save the old location */
-       int oy = py;
-       int ox = px;
+       int oy = p_ptr->y;
+       int ox = p_ptr->x;
 
        if (!teleport_player_aux(dis, TELEPORT_PASSIVE)) return;
 
@@ -519,7 +520,7 @@ void teleport_player_away(int m_idx, int dis)
        {
                for (yy = -1; yy < 2; yy++)
                {
-                       int tmp_m_idx = cave[oy+yy][ox+xx].m_idx;
+                       IDX tmp_m_idx = cave[oy+yy][ox+xx].m_idx;
 
                        /* A monster except your mount or caster may follow */
                        if (tmp_m_idx && (p_ptr->riding != tmp_m_idx) && (m_idx != tmp_m_idx))
@@ -531,10 +532,10 @@ void teleport_player_away(int m_idx, int dis)
                                 * The latter limitation is to avoid
                                 * totally unkillable suckers...
                                 */
-                               if ((r_ptr->flags6 & RF6_TPORT) &&
+                               if ((r_ptr->a_ability_flags2 & RF6_TPORT) &&
                                    !(r_ptr->flagsr & RFR_RES_TELE))
                                {
-                                       if (!MON_CSLEEP(m_ptr)) teleport_monster_to(tmp_m_idx, py, px, r_ptr->level, 0L);
+                                       if (!MON_CSLEEP(m_ptr)) teleport_monster_to(tmp_m_idx, p_ptr->y, p_ptr->x, r_ptr->level, 0L);
                                }
                        }
                }
@@ -555,9 +556,10 @@ void teleport_player_away(int m_idx, int dis)
  * This function allows teleporting into vaults (!)
  * </pre>
  */
-void teleport_player_to(int ny, int nx, u32b mode)
+void teleport_player_to(POSITION ny, POSITION nx, u32b mode)
 {
-       int y, x, dis = 0, ctr = 0;
+       POSITION y, x;
+       int dis = 0, ctr = 0;
 
        if (p_ptr->anti_tele && !(mode & TELEPORT_NONMAGICAL))
        {
@@ -571,8 +573,8 @@ void teleport_player_to(int ny, int nx, u32b mode)
                /* Pick a nearby legal location */
                while (1)
                {
-                       y = rand_spread(ny, dis);
-                       x = rand_spread(nx, dis);
+                       y = (POSITION)rand_spread(ny, dis);
+                       x = (POSITION)rand_spread(nx, dis);
                        if (in_bounds(y, x)) break;
                }
 
@@ -598,7 +600,7 @@ void teleport_player_to(int ny, int nx, u32b mode)
 }
 
 
-void teleport_away_followable(int m_idx)
+void teleport_away_followable(MONSTER_IDX m_idx)
 {
        monster_type *m_ptr = &m_list[m_idx];
        int          oldfy = m_ptr->fy;
@@ -608,7 +610,7 @@ void teleport_away_followable(int m_idx)
 
        teleport_away(m_idx, MAX_SIGHT * 2 + 5, 0L);
 
-       if (old_ml && (old_cdis <= MAX_SIGHT) && !world_monster && !p_ptr->inside_battle && los(py, px, oldfy, oldfx))
+       if (old_ml && (old_cdis <= MAX_SIGHT) && !world_monster && !p_ptr->inside_battle && los(p_ptr->y, p_ptr->x, oldfy, oldfx))
        {
                bool follow = FALSE;
 
@@ -657,7 +659,7 @@ void teleport_away_followable(int m_idx)
  * @param m_idx テレポートの対象となるモンスターID(0ならばプレイヤー) / If m_idx <= 0, target is player.
  * @return なし
  */
-void teleport_level(int m_idx)
+void teleport_level(MONSTER_IDX m_idx)
 {
        bool         go_up;
        char         m_name[160];
@@ -712,9 +714,9 @@ void teleport_level(int m_idx)
                {
                        if (!dun_level)
                        {
-                               dungeon_type = p_ptr->recall_dungeon;
-                               p_ptr->oldpy = py;
-                               p_ptr->oldpx = px;
+                               dungeon_type = ironman_downward ? DUNGEON_ANGBAND : p_ptr->recall_dungeon;
+                               p_ptr->oldpy = p_ptr->y;
+                               p_ptr->oldpx = p_ptr->x;
                        }
 
                        if (record_stair) do_cmd_write_nikki(NIKKI_TELE_LEV, 1, NULL);
@@ -831,15 +833,15 @@ void teleport_level(int m_idx)
 
 
 /*!
- * @brief ã\81\93ã\82\8cã\81¾ã\81§ã\81«å\85¥ã\81£ã\81\9fã\83\80ã\83³ã\82¸ã\83§ã\83³ã\81®ä¸\80覧ã\82\92表示ã\81\99ã\82\8b
+ * @brief ã\81\93ã\82\8cã\81¾ã\81§ã\81«å\85¥ã\81£ã\81\9fã\83\80ã\83³ã\82¸ã\83§ã\83³ã\81®ä¸\80覧ã\82\92表示ã\81\97ã\80\81é\81¸æ\8a\9eã\81\95ã\81\9bã\82\8bã\80\82
  * @param note ダンジョンに施す処理記述
  * @param y コンソールY座標
  * @param x コンソールX座標
- * @return なし
+ * @return 選択されたダンジョンID
  */
-int choose_dungeon(cptr note, int y, int x)
+DUNGEON_IDX choose_dungeon(cptr note, POSITION y, POSITION x)
 {
-       int select_dungeon;
+       DUNGEON_IDX select_dungeon;
        int i, num = 0;
        s16b *dun;
 
@@ -873,7 +875,7 @@ int choose_dungeon(cptr note, int y, int x)
                else if (max_dlv[i] == d_info[i].maxdepth) seiha = TRUE;
 
                sprintf(buf,_("      %c) %c%-12s : 最大 %d 階", "      %c) %c%-16s : Max level %d"), 
-                                       'a'+num, seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
+                                       'a'+num, seiha ? '!' : ' ', d_name + d_info[i].name, (int)max_dlv[i]);
                prt(buf, y + num, x);
                dun[num++] = i;
        }
@@ -917,7 +919,7 @@ int choose_dungeon(cptr note, int y, int x)
  * @param turns 発動までのターン数
  * @return 常にTRUEを返す
  */
-bool recall_player(int turns)
+bool recall_player(TIME_EFFECT turns)
 {
        /*
         * TODO: Recall the player to the last
@@ -945,7 +947,7 @@ bool recall_player(int turns)
        {
                if (!dun_level)
                {
-                       int select_dungeon;
+                       DUNGEON_IDX select_dungeon;
                        select_dungeon = choose_dungeon(_("に帰還", "recall"), 2, 14);
                        if (!select_dungeon) return FALSE;
                        p_ptr->recall_dungeon = select_dungeon;
@@ -993,10 +995,11 @@ bool reset_recall(void)
 
        if (!select_dungeon) return FALSE;
        /* Prompt */
-       sprintf(ppp, _("何階にセットしますか (%d-%d):", "Reset to which level (%d-%d): "), d_info[select_dungeon].mindepth, max_dlv[select_dungeon]);
+       sprintf(ppp, _("何階にセットしますか (%d-%d):", "Reset to which level (%d-%d): "),
+               (int)d_info[select_dungeon].mindepth, (int)max_dlv[select_dungeon]);
 
        /* Default */
-       sprintf(tmp_val, "%d", MAX(dun_level, 1));
+       sprintf(tmp_val, "%d", (int)MAX(dun_level, 1));
 
        /* Ask for a level */
        if (get_string(ppp, tmp_val, 10))
@@ -1155,7 +1158,8 @@ msg_format("%s(%c)は劣化を跳ね返した!",o_name, index_to_label(t) );
  */
 void mutate_player(void)
 {
-       int max1, cur1, max2, cur2, ii, jj, i;
+       BASE_STATUS max1, cur1, max2, cur2;
+       int ii, jj, i;
 
        /* Pick a pair of stats */
        ii = randint0(6);
@@ -1292,7 +1296,7 @@ void phlogiston(void)
  */
 void brand_weapon(int brand_type)
 {
-       int         item;
+       OBJECT_IDX item;
        object_type *o_ptr;
        cptr        q, s;
 
@@ -1597,7 +1601,7 @@ void call_the_(void)
 
        for (i = 0; i < 9; i++)
        {
-               c_ptr = &cave[py + ddy_ddd[i]][px + ddx_ddd[i]];
+               c_ptr = &cave[p_ptr->y + ddy_ddd[i]][p_ptr->x + ddx_ddd[i]];
 
                if (!cave_have_flag_grid(c_ptr, FF_PROJECT))
                {
@@ -1653,7 +1657,7 @@ void call_the_(void)
                }
                else
                {
-                       if (destroy_area(py, px, 15 + p_ptr->lev + randint0(11), FALSE))
+                       if (destroy_area(p_ptr->y, p_ptr->x, 15 + p_ptr->lev + randint0(11), FALSE))
                                msg_print(_("ダンジョンが崩壊した...", "The dungeon collapses..."));
                        else
                                msg_print(_("ダンジョンは大きく揺れた。", "The dungeon trembles."));
@@ -1674,13 +1678,14 @@ void call_the_(void)
  */
 void fetch(int dir, int wgt, bool require_los)
 {
-       int             ty, tx, i;
+       int             ty, tx;
+       DEPTH i;
        cave_type       *c_ptr;
        object_type     *o_ptr;
        char            o_name[MAX_NLEN];
 
        /* Check to see if an object is already there */
-       if (cave[py][px].o_idx)
+       if (cave[p_ptr->y][p_ptr->x].o_idx)
        {
                msg_print(_("自分の足の下にある物は取れません。", "You can't fetch when you're already standing on something."));
                return;
@@ -1692,7 +1697,7 @@ void fetch(int dir, int wgt, bool require_los)
                tx = target_col;
                ty = target_row;
 
-               if (distance(py, px, ty, tx) > MAX_RANGE)
+               if (distance(p_ptr->y, p_ptr->x, ty, tx) > MAX_RANGE)
                {
                        msg_print(_("そんなに遠くにある物は取れません!", "You can't fetch something that far away!"));
                        return;
@@ -1722,7 +1727,7 @@ void fetch(int dir, int wgt, bool require_los)
                                msg_print(_("そこはあなたの視界に入っていません。", "You have no direct line of sight to that location."));
                                return;
                        }
-                       else if (!projectable(py, px, ty, tx))
+                       else if (!projectable(p_ptr->y, p_ptr->x, ty, tx))
                        {
                                msg_print(_("そこは壁の向こうです。", "You have no direct line of sight to that location."));
                                return;
@@ -1732,8 +1737,8 @@ void fetch(int dir, int wgt, bool require_los)
        else
        {
                /* Use a direction */
-               ty = py; /* Where to drop the item */
-               tx = px;
+               ty = p_ptr->y; /* Where to drop the item */
+               tx = p_ptr->x;
 
                do
                {
@@ -1741,7 +1746,7 @@ void fetch(int dir, int wgt, bool require_los)
                        tx += ddx[dir];
                        c_ptr = &cave[ty][tx];
 
-                       if ((distance(py, px, ty, tx) > MAX_RANGE) ||
+                       if ((distance(p_ptr->y, p_ptr->x, ty, tx) > MAX_RANGE) ||
                                !cave_have_flag_bold(ty, tx, FF_PROJECT)) return;
                }
                while (!c_ptr->o_idx);
@@ -1758,15 +1763,15 @@ void fetch(int dir, int wgt, bool require_los)
 
        i = c_ptr->o_idx;
        c_ptr->o_idx = o_ptr->next_o_idx;
-       cave[py][px].o_idx = i; /* 'move' it */
+       cave[p_ptr->y][p_ptr->x].o_idx = i; /* 'move' it */
        o_ptr->next_o_idx = 0;
-       o_ptr->iy = (byte)py;
-       o_ptr->ix = (byte)px;
+       o_ptr->iy = (byte)p_ptr->y;
+       o_ptr->ix = (byte)p_ptr->x;
 
        object_desc(o_name, o_ptr, OD_NAME_ONLY);
        msg_format(_("%^sがあなたの足元に飛んできた。", "%^s flies through the air to your feet."), o_name);
 
-       note_spot(py, px);
+       note_spot(p_ptr->y, p_ptr->x);
        p_ptr->redraw |= PR_MAP;
 }
 
@@ -1785,7 +1790,7 @@ void alter_reality(void)
 
        if (!p_ptr->alter_reality)
        {
-               int turns = randint0(21) + 15;
+               TIME_EFFECT turns = randint0(21) + 15;
 
                p_ptr->alter_reality = turns;
                msg_print(_("回りの景色が変わり始めた...", "The view around you begins to change..."));
@@ -1810,21 +1815,21 @@ void alter_reality(void)
 bool warding_glyph(void)
 {
        /* XXX XXX XXX */
-       if (!cave_clean_bold(py, px))
+       if (!cave_clean_bold(p_ptr->y, p_ptr->x))
        {
                msg_print(_("床上のアイテムが呪文を跳ね返した。", "The object resists the spell."));
                return FALSE;
        }
 
        /* Create a glyph */
-       cave[py][px].info |= CAVE_OBJECT;
-       cave[py][px].mimic = feat_glyph;
+       cave[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT;
+       cave[p_ptr->y][p_ptr->x].mimic = feat_glyph;
 
        /* Notice */
-       note_spot(py, px);
+       note_spot(p_ptr->y, p_ptr->x);
 
        /* Redraw */
-       lite_spot(py, px);
+       lite_spot(p_ptr->y, p_ptr->x);
 
        return TRUE;
 }
@@ -1836,26 +1841,26 @@ bool warding_glyph(void)
 bool place_mirror(void)
 {
        /* XXX XXX XXX */
-       if (!cave_clean_bold(py, px))
+       if (!cave_clean_bold(p_ptr->y, p_ptr->x))
        {
                msg_print(_("床上のアイテムが呪文を跳ね返した。", "The object resists the spell."));
                return FALSE;
        }
 
        /* Create a mirror */
-       cave[py][px].info |= CAVE_OBJECT;
-       cave[py][px].mimic = feat_mirror;
+       cave[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT;
+       cave[p_ptr->y][p_ptr->x].mimic = feat_mirror;
 
        /* Turn on the light */
-       cave[py][px].info |= CAVE_GLOW;
+       cave[p_ptr->y][p_ptr->x].info |= CAVE_GLOW;
 
        /* Notice */
-       note_spot(py, px);
+       note_spot(p_ptr->y, p_ptr->x);
 
        /* Redraw */
-       lite_spot(py, px);
+       lite_spot(p_ptr->y, p_ptr->x);
 
-       update_local_illumination(py, px);
+       update_local_illumination(p_ptr->y, p_ptr->x);
 
        return TRUE;
 }
@@ -1869,21 +1874,21 @@ bool place_mirror(void)
 bool explosive_rune(void)
 {
        /* XXX XXX XXX */
-       if (!cave_clean_bold(py, px))
+       if (!cave_clean_bold(p_ptr->y, p_ptr->x))
        {
                msg_print(_("床上のアイテムが呪文を跳ね返した。", "The object resists the spell."));
                return FALSE;
        }
 
        /* Create a glyph */
-       cave[py][px].info |= CAVE_OBJECT;
-       cave[py][px].mimic = feat_explosive_rune;
+       cave[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT;
+       cave[p_ptr->y][p_ptr->x].mimic = feat_explosive_rune;
 
        /* Notice */
-       note_spot(py, px);
+       note_spot(p_ptr->y, p_ptr->x);
        
        /* Redraw */
-       lite_spot(py, px);
+       lite_spot(p_ptr->y, p_ptr->x);
 
        return TRUE;
 }
@@ -2001,7 +2006,7 @@ static int remove_curse_aux(int all)
  * Remove most curses
  * @return 解呪に成功した装備数
  */
-bool remove_curse(void)
+int remove_curse(void)
 {
        return (remove_curse_aux(FALSE));
 }
@@ -2011,7 +2016,7 @@ bool remove_curse(void)
  * Remove all curses
  * @return 解呪に成功した装備数
  */
-bool remove_all_curse(void)
+int remove_all_curse(void)
 {
        return (remove_curse_aux(TRUE));
 }
@@ -2024,9 +2029,10 @@ bool remove_all_curse(void)
  */
 bool alchemy(void)
 {
-       int item, amt = 1;
-       int old_number;
-       long price;
+       OBJECT_IDX item;
+       int amt = 1;
+       ITEM_NUMBER old_number;
+       PRICE price;
        bool force = FALSE;
        object_type *o_ptr;
        char o_name[MAX_NLEN];
@@ -2293,7 +2299,7 @@ bool enchant(object_type *o_ptr, int n, int eflag)
  */
 bool enchant_spell(int num_hit, int num_dam, int num_ac)
 {
-       int         item;
+       OBJECT_IDX item;
        bool        okay = FALSE;
        object_type *o_ptr;
        char        o_name[MAX_NLEN];
@@ -2390,7 +2396,7 @@ static bool item_tester_hook_nameless_weapon_armour(object_type *o_ptr)
  */
 bool artifact_scroll(void)
 {
-       int             item;
+       OBJECT_IDX item;
        bool            okay = FALSE;
        object_type     *o_ptr;
        char            o_name[MAX_NLEN];
@@ -2506,7 +2512,15 @@ bool artifact_scroll(void)
                if (one_in_(3)) chg_virtue(V_ENCHANT, -1);
        }
        else
+       {
+               if (record_rand_art)
+               {
+                       /* Description */
+                       object_desc(o_name, o_ptr, OD_NAME_ONLY);
+                       do_cmd_write_nikki(NIKKI_ART_SCROLL, 0, o_name);
+               }
                chg_virtue(V_ENCHANT, 1);
+       }
 
        calc_android_exp();
 
@@ -2601,7 +2615,7 @@ static bool item_tester_hook_identify_weapon_armour(object_type *o_ptr)
  */
 bool ident_spell(bool only_equip)
 {
-       int             item;
+       OBJECT_IDX item;
        object_type     *o_ptr;
        char            o_name[MAX_NLEN];
        cptr            q, s;
@@ -2687,7 +2701,7 @@ bool ident_spell(bool only_equip)
  */
 bool mundane_spell(bool only_equip)
 {
-       int             item;
+       OBJECT_IDX item;
        object_type     *o_ptr;
        cptr            q, s;
 
@@ -2715,8 +2729,8 @@ bool mundane_spell(bool only_equip)
        /* Oops */
        msg_print(_("まばゆい閃光が走った!", "There is a bright flash of light!"));
        {
-               byte iy = o_ptr->iy;                 /* Y-position on map, or zero */
-               byte ix = o_ptr->ix;                 /* X-position on map, or zero */
+               POSITION iy = o_ptr->iy;                 /* Y-position on map, or zero */
+               POSITION ix = o_ptr->ix;                 /* X-position on map, or zero */
                s16b next_o_idx = o_ptr->next_o_idx; /* Next object in stack (if any) */
                byte marked = o_ptr->marked;         /* Object is marked */
                s16b weight = o_ptr->number * o_ptr->weight;
@@ -2771,7 +2785,7 @@ static bool item_tester_hook_identify_fully_weapon_armour(object_type *o_ptr)
  */
 bool identify_fully(bool only_equip)
 {
-       int             item;
+       OBJECT_IDX item;
        object_type     *o_ptr;
        char            o_name[MAX_NLEN];
        cptr            q, s;
@@ -2895,8 +2909,10 @@ bool item_tester_hook_recharge(object_type *o_ptr)
  */
 bool recharge(int power)
 {
-       int item, lev;
-       int recharge_strength, recharge_amount;
+       OBJECT_IDX item;
+       int lev;
+       int recharge_strength;
+       TIME_EFFECT recharge_amount;
 
        object_type *o_ptr;
        object_kind *k_ptr;
@@ -3188,9 +3204,9 @@ bool recharge(int power)
  */
 bool bless_weapon(void)
 {
-       int             item;
+       OBJECT_IDX item;
        object_type     *o_ptr;
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
        char            o_name[MAX_NLEN];
        cptr            q, s;
 
@@ -3372,7 +3388,7 @@ msg_format("%s は劣化した!",
  */
 bool pulish_shield(void)
 {
-       int             item;
+       OBJECT_IDX item;
        object_type     *o_ptr;
        u32b flgs[TR_FLAG_SIZE];
        char            o_name[MAX_NLEN];
@@ -3466,7 +3482,7 @@ msg_format("%sは輝いた!", o_name);
  *    o_ptr --- pointer to the potion object.
  * </pre>
  */
-bool potion_smash_effect(int who, int y, int x, int k_idx)
+bool potion_smash_effect(MONSTER_IDX who, POSITION y, POSITION x, KIND_OBJECT_IDX k_idx)
 {
        int     radius = 2;
        int     dt = 0;
@@ -3646,9 +3662,6 @@ void display_spell_list(void)
            (p_ptr->pclass == CLASS_MIRROR_MASTER) ||
            (p_ptr->pclass == CLASS_FORCETRAINER))
        {
-               int             i;
-               int             y = 1;
-               int             x = 1;
                int             minfail = 0;
                int             plev = p_ptr->lev;
                int             chance = 0;
@@ -3658,6 +3671,9 @@ void display_spell_list(void)
                int             use_mind;
                bool use_hp = FALSE;
 
+               y = 1;
+               x = 1;
+
                /* Display a list of spells */
                prt("", y, x);
                put_str(_("名前", "Name"), y, x + 5);
@@ -4093,15 +4109,15 @@ bool spell_okay(int spell, bool learned, bool study_pray, int use_realm)
 /*!
  * @brief 呪文情報の表示処理 /
  * Print a list of spells (for browsing or casting or viewing)
- * @param target_spell 呪文ID
- * @param spells アクセス開始するスペルの参照ポイント
- * @param num 表示する
+ * @param target_spell 呪文ID                    
+ * @param spells 表示するスペルID配列の参照ポインタ
+ * @param num 表示するスペルの数(spellsの要素数)
  * @param y 表示メッセージ左上Y座標
  * @param x 表示メッセージ左上X座標
  * @param use_realm 魔法領域ID
  * @return なし
  */
-void print_spells(int target_spell, byte *spells, int num, int y, int x, int use_realm)
+void print_spells(SPELL_IDX target_spell, SPELL_IDX *spells, int num, TERM_POSITION y, TERM_POSITION x, REALM_IDX use_realm)
 {
        int             i, spell, exp_level, increment = 64;
        const magic_type *s_ptr;
@@ -4571,7 +4587,7 @@ o_name, index_to_label(i),
                                /* Potions smash open */
                                if (object_is_potion(o_ptr))
                                {
-                                       (void)potion_smash_effect(0, py, px, o_ptr->k_idx);
+                                       (void)potion_smash_effect(0, p_ptr->y, p_ptr->x, o_ptr->k_idx);
                                }
 
                                /* Reduce the charges of rods/wands */
@@ -4861,7 +4877,7 @@ int cold_dam(int dam, cptr kb_str, int monspell, bool aura)
  */
 bool rustproof(void)
 {
-       int         item;
+       OBJECT_IDX item;
        object_type *o_ptr;
        char        o_name[MAX_NLEN];
        cptr        q, s;
@@ -5142,11 +5158,13 @@ bool brand_bolts(void)
  * @details
  * Note that this function is one of the more "dangerous" ones...
  */
-static s16b poly_r_idx(int r_idx)
+static IDX poly_r_idx(MONRACE_IDX r_idx)
 {
        monster_race *r_ptr = &r_info[r_idx];
 
-       int i, r, lev1, lev2;
+       int i;
+       MONRACE_IDX r;
+       DEPTH lev1, lev2;
 
        /* Hack -- Uniques/Questors never polymorph */
        if ((r_ptr->flags1 & RF1_UNIQUE) ||
@@ -5193,13 +5211,13 @@ static s16b poly_r_idx(int r_idx)
  * @param x 指定のX座標
  * @return 実際に変身したらTRUEを返す
  */
-bool polymorph_monster(int y, int x)
+bool polymorph_monster(POSITION y, POSITION x)
 {
        cave_type *c_ptr = &cave[y][x];
        monster_type *m_ptr = &m_list[c_ptr->m_idx];
        bool polymorphed = FALSE;
-       int new_r_idx;
-       int old_r_idx = m_ptr->r_idx;
+       MONRACE_IDX new_r_idx;
+       MONRACE_IDX old_r_idx = m_ptr->r_idx;
        bool targeted = (target_who == c_ptr->m_idx) ? TRUE : FALSE;
        bool health_tracked = (p_ptr->health_who == c_ptr->m_idx) ? TRUE : FALSE;
        monster_type back_m;
@@ -5297,14 +5315,14 @@ bool polymorph_monster(int y, int x)
  * @param y テレポート先のY座標
  * @return 目標に指定通りテレポートできたならばTRUEを返す
  */
-static bool dimension_door_aux(int x, int y)
+static bool dimension_door_aux(DEPTH x, DEPTH y)
 {
-       int     plev = p_ptr->lev;
+       PLAYER_LEVEL plev = p_ptr->lev;
 
        p_ptr->energy_need += (s16b)((s32b)(60 - plev) * ENERGY_NEED() / 100L);
 
        if (!cave_player_teleportable_bold(y, x, 0L) ||
-           (distance(y, x, py, px) > plev / 2 + 10) ||
+           (distance(y, x, p_ptr->y, p_ptr->x) > plev / 2 + 10) ||
            (!randint0(plev / 10 + 10)))
        {
                p_ptr->energy_need += (s16b)((s32b)(60 - plev) * ENERGY_NEED() / 100L);
@@ -5330,7 +5348,7 @@ static bool dimension_door_aux(int x, int y)
  */
 bool dimension_door(void)
 {
-       int x = 0, y = 0;
+       DEPTH x = 0, y = 0;
 
        /* Rerutn FALSE if cancelled */
        if (!tgt_pt(&x, &y)) return FALSE;
@@ -5350,7 +5368,7 @@ bool dimension_door(void)
  */
 bool mirror_tunnel(void)
 {
-       int x = 0, y = 0;
+       POSITION x = 0, y = 0;
 
        /* Rerutn FALSE if cancelled */
        if (!tgt_pt(&x, &y)) return FALSE;
@@ -5371,7 +5389,8 @@ bool eat_magic(int power)
 {
        object_type * o_ptr;
        object_kind *k_ptr;
-       int lev, item;
+       int lev;
+       OBJECT_IDX item;
        int recharge_strength = 0;
 
        bool fail = FALSE;
@@ -5762,7 +5781,7 @@ bool summon_kin_player(int level, int y, int x, u32b mode)
  * @param px プレイヤーX座標
  * @return なし
  */
-void massacre(int py, int px)
+void massacre(void)
 {
        int x, y;
        cave_type       *c_ptr;
@@ -5771,8 +5790,8 @@ void massacre(int py, int px)
 
        for (dir = 0; dir < 8; dir++)
        {
-               y = py + ddy_ddd[dir];
-               x = px + ddx_ddd[dir];
+               y = p_ptr->y + ddy_ddd[dir];
+               x = p_ptr->x + ddx_ddd[dir];
                c_ptr = &cave[y][x];
 
                /* Get the monster */