MCPcopy Create free account
hub / github.com/NetHack/NetHack / fumaroles

Function fumaroles

src/mkmaze.c:1483–1514  ·  view source on GitHub ↗

augment the Plane of Fire; called from goto_level() when arriving and moveloop_core() when on the level */

Source from the content-addressed store, hash-verified

1481/* augment the Plane of Fire; called from goto_level() when arriving and
1482 moveloop_core() when on the level */
1483void
1484fumaroles(void)
1485{
1486 xint16 n, nmax = rn2(3);
1487 int sizemin = 5;
1488 boolean snd = FALSE, loud = FALSE;
1489
1490 if (Is_firelevel(&u.uz)) {
1491 nmax++;
1492 sizemin += 5;
1493 }
1494 if (svl.level.flags.temperature > 0) {
1495 nmax++;
1496 sizemin += 5;
1497 }
1498
1499 for (n = nmax; n; n--) {
1500 coordxy x = rn1(COLNO - 4, 3);
1501 coordxy y = rn1(ROWNO - 4, 3);
1502
1503 if (levl[x][y].typ == LAVAPOOL) {
1504 NhRegion *r = create_gas_cloud(x, y, rn1(10, sizemin), rn1(10, 5));
1505
1506 clear_heros_fault(r);
1507 snd = TRUE;
1508 if (distu(x, y) < 15)
1509 loud = TRUE;
1510 }
1511 }
1512 if (snd && !Deaf)
1513 Norep("You hear a %swhoosh!", loud ? "loud " : ""); /* Deaf-aware */
1514}
1515
1516/*
1517 * Special waterlevel stuff in endgame (TH).

Callers 2

allmain.cFile · 0.85
goto_levelFunction · 0.85

Calls 3

rn2Function · 0.85
create_gas_cloudFunction · 0.85
NorepFunction · 0.85

Tested by

no test coverage detected