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

Function drop_to

src/dokick.c:1472–1507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1470}
1471
1472staticfn void
1473drop_to(coord *cc, schar loc, coordxy x, coordxy y)
1474{
1475 stairway *stway = stairway_at(x, y);
1476
1477 /* cover all the MIGR_xxx choices generated by down_gate() */
1478 switch (loc) {
1479 case MIGR_RANDOM: /* trap door or hole */
1480 if (Is_stronghold(&u.uz)) {
1481 cc->x = valley_level.dnum;
1482 cc->y = valley_level.dlevel;
1483 break;
1484 } else if (In_endgame(&u.uz) || Is_botlevel(&u.uz)) {
1485 cc->y = cc->x = 0;
1486 break;
1487 }
1488 FALLTHROUGH;
1489 /*FALLTHRU*/
1490 case MIGR_STAIRS_UP:
1491 case MIGR_LADDER_UP:
1492 case MIGR_SSTAIRS:
1493 if (stway) {
1494 cc->x = stway->tolev.dnum;
1495 cc->y = stway->tolev.dlevel;
1496 } else {
1497 cc->x = u.uz.dnum;
1498 cc->y = u.uz.dlevel + 1;
1499 }
1500 break;
1501 default:
1502 case MIGR_NOWHERE:
1503 /* y==0 means "nowhere", in which case x doesn't matter */
1504 cc->y = cc->x = 0;
1505 break;
1506 }
1507}
1508
1509/* player or missile impacts location, causing objects to fall down */
1510void

Callers 2

impact_dropFunction · 0.85
ship_objectFunction · 0.85

Calls 2

stairway_atFunction · 0.85
Is_botlevelFunction · 0.85

Tested by

no test coverage detected