From 98ec9eeeffd51e0903907fa901a3ee0926105695 Mon Sep 17 00:00:00 2001 From: qndel Date: Thu, 28 Mar 2019 00:36:02 +0100 Subject: [PATCH] InitRndLocBigObj bin exact --- Source/objects.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/Source/objects.cpp b/Source/objects.cpp index d20703324..35f5a9486 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -481,31 +481,32 @@ void __fastcall InitRndLocObj(int min, int max, int objtype) void __fastcall InitRndLocBigObj(int min, int max, int objtype) { - int xp; // edi - int yp; // esi - int numobjs; // [esp+4h] [ebp-8h] - int i; // [esp+8h] [ebp-4h] + int i, numobjs, xp, yp, xpm1, xpp1, ypm2, ypm1, ypp1; - i = 0; numobjs = min + random(140, max - min); + i = 0; if (numobjs > 0) { - while (1) { + for (;;){ do { xp = random(140, 80) + 16; yp = random(140, 80) + 16; - } while (!RndLocOk(xp - 1, yp - 2)); - if (RndLocOk(xp, yp - 2)) { - if (RndLocOk(xp + 1, yp - 2)) /* check */ - { - if (RndLocOk(xp - 1, yp - 1)) { - if (RndLocOk(xp, yp - 1)) { - if (RndLocOk(xp + 1, yp - 1)) { - if (RndLocOk(xp - 1, yp)) { + 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(xp + 1, yp)) { - if (RndLocOk(xp - 1, yp + 1)) { - if (RndLocOk(xp, yp + 1)) { - if (RndLocOk(xp + 1, yp + 1)) { + 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;