OSDN Git Service

#37287 #37353 (2.2.0.89) 型の置換を継続中。 / Ongoing type replacement.
[hengband/hengband.git] / src / spells1.c
index 8ee066a..4c83e39 100644 (file)
@@ -208,7 +208,7 @@ static byte spell_color(int type)
  * If the distance is not "one", we (may) return "*".
  * </pre>
  */
-u16b bolt_pict(int y, int x, int ny, int nx, int typ)
+u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, int typ)
 {
        int base;
 
@@ -298,7 +298,7 @@ u16b bolt_pict(int y, int x, int ny, int nx, int typ)
  * by "update_view_los()", and very different from the one used by "los()".
  * </pre>
  */
-sint project_path(u16b *gp, int range, int y1, int x1, int y2, int x2, int flg)
+sint project_path(u16b *gp, POSITION range, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int flg)
 {
        int y, x;
 
@@ -596,11 +596,11 @@ sint project_path(u16b *gp, int range, int y1, int x1, int y2, int x2, int flg)
  * Mega-Hack -- track "affected" monsters (see "project()" comments)
  */
 static int project_m_n; /*!< 魔法効果範囲内にいるモンスターの数 */
-static int project_m_x; /*!< 処理中のモンスターX座標 */
-static int project_m_y; /*!< 処理中のモンスターY座標 */
+static POSITION project_m_x; /*!< 処理中のモンスターX座標 */
+static POSITION project_m_y; /*!< 処理中のモンスターY座標 */
 /* Mega-Hack -- monsters target */
-static s16b monster_target_x; /*!< モンスターの攻撃目標X座標 */
-static s16b monster_target_y; /*!< モンスターの攻撃目標Y座標 */
+static POSITION monster_target_x; /*!< モンスターの攻撃目標X座標 */
+static POSITION monster_target_y; /*!< モンスターの攻撃目標Y座標 */
 
 
 /*!
@@ -1198,11 +1198,11 @@ static bool project_f(int who, int r, int y, int x, int dam, int typ)
  * We return "TRUE" if the effect of the projection is "obvious".
  * </pre>
  */
-static bool project_o(int who, int r, int y, int x, int dam, int typ)
+static bool project_o(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, int typ)
 {
        cave_type *c_ptr = &cave[y][x];
 
-       s16b this_o_idx, next_o_idx = 0;
+       OBJECT_IDX this_o_idx, next_o_idx = 0;
 
        bool obvious = FALSE;
        bool known = player_has_los_bold(y, x);
@@ -1585,7 +1585,7 @@ static bool project_o(int who, int r, int y, int x, int dam, int typ)
  * "flg" was added.
  * </pre>
  */
-static bool project_m(int who, int r, int y, int x, int dam, int typ, int flg, bool see_s_msg)
+static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, int typ, int flg, bool see_s_msg)
 {
        int tmp;
 
@@ -1643,7 +1643,7 @@ static bool project_m(int who, int r, int y, int x, int dam, int typ, int flg, b
        char m_name[80];
        char m_poss[10];
 
-       int photo = 0;
+       PARAMETER_VALUE photo = 0;
 
        /* Assume no note */
        cptr note = NULL;
@@ -3053,7 +3053,7 @@ static bool project_m(int who, int r, int y, int x, int dam, int typ, int flg, b
 
                        if (r_ptr->flagsr & RFR_RES_ALL)
                        {
-                note = _("には効果がなかった!", " is immune.");
+                               note = _("には効果がなかった!", " is immune.");
                                dam = 0;
                                if (is_original_ap_and_seen(m_ptr)) r_ptr->r_flagsr |= (RFR_RES_ALL);
                                break;
@@ -4073,7 +4073,7 @@ static bool project_m(int who, int r, int y, int x, int dam, int typ, int flg, b
                                break;
                        }
 
-                       if ((r_ptr->flags4 & ~(RF4_NOMAGIC_MASK)) || (r_ptr->flags5 & ~(RF5_NOMAGIC_MASK)) || (r_ptr->flags6 & ~(RF6_NOMAGIC_MASK)))
+                       if ((r_ptr->flags4 & ~(RF4_NOMAGIC_MASK)) || (r_ptr->a_ability_flags1 & ~(RF5_NOMAGIC_MASK)) || (r_ptr->a_ability_flags2 & ~(RF6_NOMAGIC_MASK)))
                        {
                                if (who > 0)
                                {
@@ -5173,7 +5173,7 @@ static bool project_m(int who, int r, int y, int x, int dam, int typ, int flg, b
  * We return "TRUE" if any "obvious" effects were observed.  XXX XXX Actually,
  * we just assume that the effects were obvious, for historical reasons.
  */
-static bool project_p(int who, cptr who_name, int r, int y, int x, int dam, int typ, int flg, int monspell)
+static bool project_p(int who, cptr who_name, int r, POSITION y, POSITION x, HIT_POINT dam, int typ, int flg, int monspell)
 {
        int k = 0;
        int rlev = 0;
@@ -5216,15 +5216,15 @@ static bool project_p(int who, cptr who_name, int r, int y, int x, int dam, int
 
        if ((p_ptr->reflect || ((p_ptr->special_defense & KATA_FUUJIN) && !p_ptr->blind)) && (flg & PROJECT_REFLECTABLE) && !one_in_(10))
        {
-               byte t_y, t_x;
+               POSITION t_y, t_x;
                int max_attempts = 10;
 
-        if (blind) 
-            msg_print(_("何かが跳ね返った!", "Something bounces!"));
+               if (blind) 
+                       msg_print(_("何かが跳ね返った!", "Something bounces!"));
                else if (p_ptr->special_defense & KATA_FUUJIN) 
-            msg_print(_("風の如く武器を振るって弾き返した!", "The attack bounces!"));
+                       msg_print(_("風の如く武器を振るって弾き返した!", "The attack bounces!"));
                else 
-            msg_print(_("攻撃が跳ね返った!", "The attack bounces!"));
+                       msg_print(_("攻撃が跳ね返った!", "The attack bounces!"));
 
 
                /* Choose 'new' target */
@@ -5465,7 +5465,9 @@ static bool project_p(int who, cptr who_name, int r, int y, int x, int dam, int
                        if (p_ptr->resist_neth)
                        {
                                if (!prace_is_(RACE_SPECTRE))
+                               {
                                        dam *= 6; dam /= (randint1(4) + 7);
+                               }
                        }
                        else if (!CHECK_MULTISHADOW()) drain_exp(200 + (p_ptr->exp / 100), 200 + (p_ptr->exp / 1000), 75);
 
@@ -6316,28 +6318,28 @@ int dist_to_line(int y, int x, int y1, int x1, int y2, int x2)
  * Modified version of los() for calculation of disintegration balls.
  * Disintegration effects are stopped by permanent walls.
  */
-bool in_disintegration_range(int y1, int x1, int y2, int x2)
+bool in_disintegration_range(POSITION y1, POSITION x1, POSITION y2, POSITION x2)
 {
        /* Delta */
-       int dx, dy;
+       POSITION dx, dy;
 
        /* Absolute */
-       int ax, ay;
+       POSITION ax, ay;
 
        /* Signs */
-       int sx, sy;
+       POSITION sx, sy;
 
        /* Fractions */
-       int qx, qy;
+       POSITION qx, qy;
 
        /* Scanners */
-       int tx, ty;
+       POSITION tx, ty;
 
        /* Scale factors */
-       int f1, f2;
+       POSITION f1, f2;
 
        /* Slope, or 1/Slope, of LOS */
-       int m;
+       POSITION m;
 
 
        /* Extract the offset */
@@ -6542,10 +6544,10 @@ bool in_disintegration_range(int y1, int x1, int y2, int x2)
 /*
  * breath shape
  */
-void breath_shape(u16b *path_g, int dist, int *pgrids, byte *gx, byte *gy, byte *gm, int *pgm_rad, int rad, int y1, int x1, int y2, int x2, int typ)
+void breath_shape(u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, POSITION *gm, int *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int typ)
 {
-       int by = y1;
-       int bx = x1;
+       POSITION by = y1;
+       POSITION bx = x1;
        int brad = 0;
        int brev = rad * rad / dist;
        int bdis = 0;
@@ -6771,17 +6773,17 @@ void breath_shape(u16b *path_g, int dist, int *pgrids, byte *gx, byte *gy, byte
  * and "update_view()" and "update_monsters()" need to be called.
  * </pre>
  */
-bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int monspell)
+bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int typ, int flg, int monspell)
 {
        int i, t, dist;
 
-       int y1, x1;
-       int y2, x2;
-       int by, bx;
+       POSITION y1, x1;
+       POSITION y2, x2;
+       POSITION by, bx;
 
        int dist_hack = 0;
 
-       int y_saver, x_saver; /* For reflecting monsters */
+       POSITION y_saver, x_saver; /* For reflecting monsters */
 
        int msec = delay_factor * delay_factor * delay_factor;
 
@@ -6812,13 +6814,13 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
        int grids = 0;
 
        /* Coordinates of the affected grids */
-       byte gx[1024], gy[1024];
+       POSITION gx[1024], gy[1024];
 
        /* Encoded "radius" info (see above) */
-       byte gm[32];
+       POSITION gm[32];
 
        /* Actual radius encoded in gm[] */
-       int gm_rad = rad;
+       POSITION gm_rad = rad;
 
        bool jump = FALSE;
 
@@ -7030,7 +7032,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                                {
                                        y = GRID_Y(path_g[j]);
                                        x = GRID_X(path_g[j]);
-                                       if(project_m(0,0,y,x,dam,GF_SEEKER,flg,TRUE))notice=TRUE;
+                                       if(project_m(0, 0, y, x, dam, GF_SEEKER, flg, TRUE)) notice=TRUE;
                                        if(!who && (project_m_n==1) && !jump ){
                                          if(cave[project_m_y][project_m_x].m_idx >0 ){
                                            monster_type *m_ptr = &m_list[cave[project_m_y][project_m_x].m_idx];
@@ -7584,7 +7586,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                                    ((cave[y][x].m_idx != p_ptr->riding) || !(flg & PROJECT_PLAYER)) &&
                                    (!who || dist_hack > 1) && !one_in_(10))
                                {
-                                       byte t_y, t_x;
+                                       POSITION t_y, t_x;
                                        int max_attempts = 10;
 
                                        /* Choose 'new' target */