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

Function makekops

src/shk.c:5112–5135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5110}
5111
5112staticfn void
5113makekops(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
5137staticfn void
5138getcad(

Callers 1

call_kopsFunction · 0.85

Calls 4

depthFunction · 0.85
rndFunction · 0.85
enextoFunction · 0.85
makemonFunction · 0.85

Tested by

no test coverage detected