OSDN Git Service

#37284 (2.2.0.15) NASTY生成のdelay値計算ミス修正。 / Fix delay calculation for NASTY generation.
[hengband/hengband.git] / src / monster2.c
index c77b850..dc62024 100644 (file)
@@ -1306,12 +1306,12 @@ s16b get_mon_num(int level)
        alloc_entry             *table = alloc_race_table;
 
        int pls_kakuritu, pls_level;
-       int hoge = mysqrt(level*10000L);
+       int delay = mysqrt(level * 10000L) + 400L;
 
        if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1;
 
-       pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((dungeon_turn / (TURNS_PER_TICK * 2500L) - hoge / 10)));
-       pls_level    = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 20000L) - hoge / 40 + MIN(5, level / 10)) ;
+       pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((dungeon_turn / (TURNS_PER_TICK * 5000L) - delay / 10)));
+       pls_level    = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 40000L) - delay / 40 + MIN(5, level / 10)) ;
 
        if (d_info[dungeon_type].flags1 & DF1_MAZE)
        {
@@ -1964,8 +1964,8 @@ void sanity_blast(monster_type *m_ptr, bool necro)
 
        if (!necro && m_ptr)
        {
-               char            m_name[80];
-               monster_race    *r_ptr = &r_info[m_ptr->ap_r_idx];
+               char m_name[80];
+               monster_race *r_ptr = &r_info[m_ptr->ap_r_idx];
 
                power = r_ptr->level / 2;
 
@@ -1987,8 +1987,6 @@ void sanity_blast(monster_type *m_ptr, bool necro)
                if (!(r_ptr->flags2 & RF2_ELDRITCH_HORROR))
                        return; /* oops */
 
-
-
                if (is_pet(m_ptr))
                        return; /* Pet eldritch horrors are safe most of the time */
 
@@ -2010,7 +2008,6 @@ void sanity_blast(monster_type *m_ptr, bool necro)
                                funny_desc[randint0(MAX_SAN_FUNNY)], m_name);
 #endif
 
-
                        if (one_in_(3))
                        {
                                msg_print(funny_comments[randint0(MAX_SAN_COMMENT)]);
@@ -2046,7 +2043,6 @@ void sanity_blast(monster_type *m_ptr, bool necro)
        else if(!necro)
        {
                monster_race *r_ptr;
-               int power;
                char m_name[80];
                cptr desc;
 
@@ -2382,8 +2378,8 @@ void update_mon(int m_idx, bool full)
        if (full)
        {
                /* Distance components */
-               int dy = (py > fy) ? (py - fy) : (fy - py);
-               int dx = (px > fx) ? (px - fx) : (fx - px);
+               int dy = (p_ptr->y > fy) ? (p_ptr->y - fy) : (fy - p_ptr->y);
+               int dx = (p_ptr->x > fx) ? (p_ptr->x - fx) : (fx - p_ptr->x);
 
                /* Approximate distance */
                d = (dy > dx) ? (dy + (dx>>1)) : (dx + (dy>>1));
@@ -2662,7 +2658,7 @@ void update_mon(int m_idx, bool full)
                        }
 
                        /* Disturb on appearance */
-                       if (disturb_near && (projectable(m_ptr->fy, m_ptr->fx, py, px) && projectable(py, px, m_ptr->fy, m_ptr->fx)))
+                       if (disturb_near && (projectable(m_ptr->fy, m_ptr->fx, p_ptr->y, p_ptr->x) && projectable(p_ptr->y, p_ptr->x, m_ptr->fy, m_ptr->fx)))
                        {
                                if (disturb_pets || is_hostile(m_ptr))
                                        disturb(1, 1);
@@ -3958,7 +3954,7 @@ bool alloc_monster(int dis, u32b mode)
                }
 
                /* Accept far away grids */
-               if (distance(y, x, py, px) > dis) break;
+               if (distance(y, x, p_ptr->y, p_ptr->x) > dis) break;
        }
 
        if (!attempts_left)
@@ -4643,8 +4639,8 @@ bool player_place(int y, int x)
        if (cave[y][x].m_idx != 0) return FALSE;
 
        /* Save player location */
-       py = y;
-       px = x;
+       p_ptr->y = y;
+       p_ptr->x = x;
 
        /* Success */
        return TRUE;