変愚蛮怒のメインリポジトリです
Revision | 3a2cdc25bc82ffde221861af828cf937ce1e6ec8 (tree) |
---|---|
Time | 2018-12-28 16:00:06 |
Author | Deskull <deskull@user...> |
Commiter | Deskull |
[Fix] #38813 get_mon_num() の階層アンダーフロー回避と player_outfit() が pval=0 の死体を生成しない仕様にした。 / Avoid depth underflow in get_mon_num(). player_outfit doesn't generate pval 0 corpses.
@@ -2307,8 +2307,11 @@ void player_outfit(void) | ||
2307 | 2307 | { |
2308 | 2308 | object_prep(q_ptr, lookup_kind(TV_CORPSE, SV_CORPSE)); |
2309 | 2309 | 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 | + } | |
2312 | 2315 | } |
2313 | 2316 | break; |
2314 | 2317 |
@@ -1243,17 +1243,15 @@ errr get_mon_num_prep(monsterrace_hook_type monster_hook, | ||
1243 | 1243 | */ |
1244 | 1244 | MONRACE_IDX get_mon_num(DEPTH level) |
1245 | 1245 | { |
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; | |
1251 | 1251 | |
1252 | 1252 | int pls_kakuritu, pls_level; |
1253 | 1253 | int delay = mysqrt(level * 10000L) + 400L; |
1254 | 1254 | |
1255 | - if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1; | |
1256 | - | |
1257 | 1255 | pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((dungeon_turn / (TURNS_PER_TICK * 5000L) - delay / 10))); |
1258 | 1256 | pls_level = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 40000L) - delay / 40 + MIN(5, level / 10)) ; |
1259 | 1257 |
@@ -1285,6 +1283,9 @@ MONRACE_IDX get_mon_num(DEPTH level) | ||
1285 | 1283 | } |
1286 | 1284 | } |
1287 | 1285 | |
1286 | + if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1; | |
1287 | + if (level < 0) level = 0; | |
1288 | + | |
1288 | 1289 | /* Reset total */ |
1289 | 1290 | total = 0L; |
1290 | 1291 |