• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

変愚蛮怒のメインリポジトリです


Commit MetaInfo

Revision3a2cdc25bc82ffde221861af828cf937ce1e6ec8 (tree)
Time2018-12-28 16:00:06
AuthorDeskull <deskull@user...>
CommiterDeskull

Log Message

[Fix] #38813 get_mon_num() の階層アンダーフロー回避と player_outfit() が pval=0 の死体を生成しない仕様にした。 / Avoid depth underflow in get_mon_num(). player_outfit doesn't generate pval 0 corpses.

Change Summary

Incremental Difference

--- a/src/birth.c
+++ b/src/birth.c
@@ -2307,8 +2307,11 @@ void player_outfit(void)
23072307 {
23082308 object_prep(q_ptr, lookup_kind(TV_CORPSE, SV_CORPSE));
23092309 q_ptr->pval = get_mon_num(2);
2310- q_ptr->number = 1;
2311- add_outfit(q_ptr);
2310+ if(q_ptr->pval)
2311+ {
2312+ q_ptr->number = 1;
2313+ add_outfit(q_ptr);
2314+ }
23122315 }
23132316 break;
23142317
--- a/src/monster2.c
+++ b/src/monster2.c
@@ -1243,17 +1243,15 @@ errr get_mon_num_prep(monsterrace_hook_type monster_hook,
12431243 */
12441244 MONRACE_IDX get_mon_num(DEPTH level)
12451245 {
1246- int i, j, p;
1247- int r_idx;
1248- long value, total;
1249- monster_race *r_ptr;
1250- alloc_entry *table = alloc_race_table;
1246+ int i, j, p;
1247+ MONRACE_IDX r_idx;
1248+ long value, total;
1249+ monster_race *r_ptr;
1250+ alloc_entry *table = alloc_race_table;
12511251
12521252 int pls_kakuritu, pls_level;
12531253 int delay = mysqrt(level * 10000L) + 400L;
12541254
1255- if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1;
1256-
12571255 pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((dungeon_turn / (TURNS_PER_TICK * 5000L) - delay / 10)));
12581256 pls_level = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 40000L) - delay / 40 + MIN(5, level / 10)) ;
12591257
@@ -1285,6 +1283,9 @@ MONRACE_IDX get_mon_num(DEPTH level)
12851283 }
12861284 }
12871285
1286+ if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1;
1287+ if (level < 0) level = 0;
1288+
12881289 /* Reset total */
12891290 total = 0L;
12901291
Show on old repository browser