OSDN Git Service

#37580 sanity_blast()の仕様変更。魔法防御が高いほど致命的な変異を受けやすい問題を直した。 / Change process of sanity_bl...
[hengband/hengband.git] / src / spells1.c
index 29e8c31..92dbfcc 100644 (file)
@@ -298,7 +298,7 @@ u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, int typ)
  * by "update_view_los()", and very different from the one used by "los()".
  * </pre>
  */
-sint project_path(u16b *gp, POSITION range, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int flg)
+sint project_path(u16b *gp, POSITION range, POSITION y1, POSITION x1, POSITION y2, POSITION x2, BIT_FLAGS flg)
 {
        int y, x;
 
@@ -628,7 +628,7 @@ static POSITION monster_target_y; /*!< モンスターの攻撃目標Y座標 */
  * XXX XXX XXX Perhaps we should affect doors?
  * </pre>
  */
-static bool project_f(int who, int r, int y, int x, int dam, int typ)
+static bool project_f(int who, int r, int y, int x, HIT_POINT dam, int typ)
 {
        cave_type       *c_ptr = &cave[y][x];
        feature_type    *f_ptr = &f_info[c_ptr->feat];
@@ -1198,20 +1198,20 @@ 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);
 
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
 
        char o_name[MAX_NLEN];
 
-       int k_idx = 0;
+       KIND_OBJECT_IDX k_idx = 0;
        bool is_potion = FALSE;
 
 
@@ -1430,7 +1430,7 @@ static bool project_o(int who, int r, int y, int x, int dam, int typ)
                                if (o_ptr->tval == TV_CORPSE)
                                {
                                        int i;
-                                       u32b mode = 0L;
+                                       BIT_FLAGS mode = 0L;
 
                                        if (!who || is_pet(&m_list[who]))
                                                mode |= PM_FORCE_PET;
@@ -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, HIT_POINT 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, BIT_FLAGS flg, bool see_s_msg)
 {
        int tmp;
 
@@ -1643,7 +1643,7 @@ static bool project_m(int who, int r, int y, int x, HIT_POINT dam, int typ, int
        char m_name[80];
        char m_poss[10];
 
-       int photo = 0;
+       PARAMETER_VALUE photo = 0;
 
        /* Assume no note */
        cptr note = NULL;
@@ -5033,7 +5033,7 @@ static bool project_m(int who, int r, int y, int x, HIT_POINT dam, int typ, int
                        case 19: case 20: case 21: case 22:
                        {
                                bool pet = !one_in_(3);
-                               u32b mode = PM_ALLOW_GROUP;
+                               BIT_FLAGS mode = PM_ALLOW_GROUP;
 
                                if (pet) mode |= PM_FORCE_PET;
                                else mode |= (PM_NO_PET | PM_FORCE_FRIENDLY);
@@ -5173,7 +5173,7 @@ static bool project_m(int who, int r, int y, int x, HIT_POINT dam, int typ, int
  * 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, POSITION y, POSITION x, HIT_POINT 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, BIT_FLAGS flg, int monspell)
 {
        int k = 0;
        int rlev = 0;
@@ -6288,27 +6288,27 @@ static bool project_p(int who, cptr who_name, int r, POSITION y, POSITION x, HIT
 /*
  * Find the distance from (x, y) to a line.
  */
-int dist_to_line(int y, int x, int y1, int x1, int y2, int x2)
+POSITION dist_to_line(POSITION y, POSITION x, POSITION y1, POSITION x1, POSITION y2, POSITION x2)
 {
        /* Vector from (x, y) to (x1, y1) */
-       int py = y1 - y;
-       int px = x1 - x;
+       POSITION py = y1 - y;
+       POSITION px = x1 - x;
 
        /* Normal vector */
-       int ny = x2 - x1;
-       int nx = y1 - y2;
+       POSITION ny = x2 - x1;
+       POSITION nx = y1 - y2;
 
-   /* Length of N */
-       int pd = distance(y1, x1, y, x);
-       int nd = distance(y1, x1, y2, x2);
+       /* Length of N */
+       POSITION pd = distance(y1, x1, y, x);
+       POSITION nd = distance(y1, x1, y2, x2);
 
        if (pd > nd) return distance(y, x, y2, x2);
 
        /* Component of P on N */
        nd = ((nd) ? ((py * ny + px * nx) / nd) : 0);
 
-   /* Absolute value */
-   return((nd >= 0) ? nd : 0 - nd);
+       /* Absolute value */
+       return((nd >= 0) ? nd : 0 - nd);
 }
 
 
@@ -6544,10 +6544,10 @@ bool in_disintegration_range(POSITION y1, POSITION x1, POSITION y2, POSITION x2)
 /*
  * breath shape
  */
-void breath_shape(u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *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, POSITION *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;
@@ -6773,17 +6773,17 @@ void breath_shape(u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *g
  * and "update_view()" and "update_monsters()" need to be called.
  * </pre>
  */
-bool project(int who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int typ, int flg, int monspell)
+bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int typ, BIT_FLAGS 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;
 
@@ -7586,7 +7586,7 @@ bool project(int who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int t
                                    ((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 */
@@ -7846,7 +7846,7 @@ bool project(int who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int t
  * @param dam ダメージ量
  * @return 効果があったらTRUEを返す
  */
-bool binding_field( int dam )
+bool binding_field( HIT_POINT dam )
 {
        int mirror_x[10],mirror_y[10]; /* 鏡はもっと少ない */
        int mirror_num=0;              /* 鏡の数 */
@@ -7995,7 +7995,7 @@ bool binding_field( int dam )
  * @param dam ダメージ量
  * @return 効果があったらTRUEを返す
  */
-void seal_of_mirror( int dam )
+void seal_of_mirror( HIT_POINT dam )
 {
        int x,y;