| 5110 | } |
| 5111 | |
| 5112 | staticfn void |
| 5113 | makekops(coord *mm) |
| 5114 | { |
| 5115 | static const short k_mndx[4] = { PM_KEYSTONE_KOP, PM_KOP_SERGEANT, |
| 5116 | PM_KOP_LIEUTENANT, PM_KOP_KAPTAIN }; |
| 5117 | int k_cnt[4], cnt, mndx, k; |
| 5118 | |
| 5119 | k_cnt[0] = cnt = abs(depth(&u.uz)) + rnd(5); |
| 5120 | k_cnt[1] = (cnt / 3) + 1; /* at least one sarge */ |
| 5121 | k_cnt[2] = (cnt / 6); /* maybe a lieutenant */ |
| 5122 | k_cnt[3] = (cnt / 9); /* and maybe a kaptain */ |
| 5123 | |
| 5124 | for (k = 0; k < 4; k++) { |
| 5125 | if ((cnt = k_cnt[k]) == 0) |
| 5126 | break; |
| 5127 | mndx = k_mndx[k]; |
| 5128 | if (svm.mvitals[mndx].mvflags & G_GONE) |
| 5129 | continue; |
| 5130 | |
| 5131 | while (cnt--) |
| 5132 | if (enexto(mm, mm->x, mm->y, &mons[mndx])) |
| 5133 | (void) makemon(&mons[mndx], mm->x, mm->y, MM_NOMSG); |
| 5134 | } |
| 5135 | } |
| 5136 | |
| 5137 | staticfn void |
| 5138 | getcad( |