| 1359 | } |
| 1360 | |
| 1361 | void |
| 1362 | abuse_dog(struct monst *mtmp) |
| 1363 | { |
| 1364 | if (!mtmp->mtame) |
| 1365 | return; |
| 1366 | |
| 1367 | if (Aggravate_monster || Conflict) |
| 1368 | mtmp->mtame /= 2; |
| 1369 | else |
| 1370 | mtmp->mtame--; |
| 1371 | |
| 1372 | if (mtmp->mtame && !mtmp->isminion) |
| 1373 | EDOG(mtmp)->abuse++; |
| 1374 | |
| 1375 | if (!mtmp->mtame && mtmp->mleashed) |
| 1376 | m_unleash(mtmp, TRUE); |
| 1377 | |
| 1378 | /* don't make a sound if pet is in the middle of leaving the level */ |
| 1379 | /* newsym isn't necessary in this case either */ |
| 1380 | if (mtmp->mx != 0) { |
| 1381 | if (mtmp->mtame && rn2(mtmp->mtame)) |
| 1382 | yelp(mtmp); |
| 1383 | else |
| 1384 | growl(mtmp); /* give them a moment's worry */ |
| 1385 | |
| 1386 | if (!mtmp->mtame) { |
| 1387 | newsym(mtmp->mx, mtmp->my); |
| 1388 | if (mtmp->wormno) { |
| 1389 | redraw_worm(mtmp); |
| 1390 | } |
| 1391 | } |
| 1392 | } |
| 1393 | } |
| 1394 | |
| 1395 | /*dog.c*/ |
no test coverage detected