| 2613 | } |
| 2614 | |
| 2615 | struct monst * |
| 2616 | cloneu(void) |
| 2617 | { |
| 2618 | struct monst *mon; |
| 2619 | int mndx = monsndx(gy.youmonst.data); |
| 2620 | |
| 2621 | if (u.mh <= 1) |
| 2622 | return (struct monst *) 0; |
| 2623 | if (svm.mvitals[mndx].mvflags & G_EXTINCT) |
| 2624 | return (struct monst *) 0; |
| 2625 | mon = makemon(gy.youmonst.data, u.ux, u.uy, |
| 2626 | NO_MINVENT | MM_EDOG | MM_NOMSG); |
| 2627 | if (!mon) |
| 2628 | return NULL; |
| 2629 | mon->mcloned = 1; |
| 2630 | mon = christen_monst(mon, svp.plname); |
| 2631 | initedog(mon, TRUE); |
| 2632 | mon->m_lev = gy.youmonst.data->mlevel; |
| 2633 | mon->mhpmax = u.mhmax; |
| 2634 | mon->mhp = u.mh / 2; |
| 2635 | u.mh -= mon->mhp; |
| 2636 | disp.botl = TRUE; |
| 2637 | return mon; |
| 2638 | } |
| 2639 | |
| 2640 | #undef ld |
| 2641 |
no test coverage detected