Browse Source

InitRndLocBigObj bin exact (#764)

pull/78/head
qndel 7 years ago committed by Anders Jenbo
parent
commit
a1256cdf32
  1. 58
      Source/objects.cpp

58
Source/objects.cpp

@ -468,45 +468,27 @@ void __fastcall InitRndLocObj(int min, int max, int objtype)
void __fastcall InitRndLocBigObj(int min, int max, int objtype)
{
int i, numobjs, xp, yp, xpm1, xpp1, ypm2, ypm1, ypp1;
int i, xp, yp, numobjs;
numobjs = min + random(140, max - min);
i = 0;
if (numobjs > 0) {
for (;;) {
do {
xp = random(140, 80) + 16;
yp = random(140, 80) + 16;
xpm1 = xp - 1;
ypm2 = yp - 2;
} while (!RndLocOk(xpm1, ypm2));
if (RndLocOk(xp, ypm2)) {
xpp1 = xp + 1;
if (RndLocOk(xpp1, ypm2)) {
ypm1 = yp - 1;
if (RndLocOk(xpm1, ypm1)) {
if (RndLocOk(xp, ypm1)) {
if (RndLocOk(xpp1, ypm1)) {
if (RndLocOk(xpm1, yp)) {
if (RndLocOk(xp, yp)) {
if (RndLocOk(xpp1, yp)) {
ypp1 = yp + 1;
if (RndLocOk(xpm1, ypp1)) {
if (RndLocOk(xp, ypp1)) {
if (RndLocOk(xpp1, ypp1)) {
AddObject(objtype, xp, yp);
if (++i >= numobjs)
break;
}
}
}
}
}
}
}
}
}
}
numobjs = random(140, max - min) + min;
for (i = 0; i < numobjs; i++) {
while (1) {
xp = random(140, 80) + 16;
yp = random(140, 80) + 16;
if (RndLocOk(xp - 1, yp - 2)
&& RndLocOk(xp, yp - 2)
&& RndLocOk(xp + 1, yp - 2)
&& RndLocOk(xp - 1, yp - 1)
&& RndLocOk(xp, yp - 1)
&& RndLocOk(xp + 1, yp - 1)
&& RndLocOk(xp - 1, yp)
&& RndLocOk(xp, yp)
&& RndLocOk(xp + 1, yp)
&& RndLocOk(xp - 1, yp + 1)
&& RndLocOk(xp, yp + 1)
&& RndLocOk(xp + 1, yp + 1)) {
AddObject(objtype, xp, yp);
break;
}
}
}

Loading…
Cancel
Save