diff --git a/Source/objects.cpp b/Source/objects.cpp index 298abccea..3b917b7c3 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -1020,49 +1020,40 @@ void AddL4Goodies() void AddLazStand() { - int v0; // edi - int v1; // esi - signed int v2; // ebx - int v3; // edx - int v4; // edi - signed int v5; // [esp+Ch] [ebp-Ch] - int v6; // [esp+10h] [ebp-8h] - signed int v7; // [esp+14h] [ebp-4h] + int xp, yp, xx, yy; + int cnt; + BOOL found; - v6 = 0; - while (1) { - v5 = 1; - v0 = random(139, 80) + 16; - v1 = random(139, 80) + 16; - v2 = -3; - do { - v7 = -2; - v3 = v2 + v1; - do { - if (!RndLocOk(v7 + v0, v3)) - v5 = 0; - ++v7; - } while (v7 <= 3); - ++v2; - } while (v2 <= 3); - if (v5) + cnt = 0; + while (TRUE) { + found = 1; + xp = random(139, 80) + 16; + yp = random(139, 80) + 16; + for (yy = -3; yy <= 3; yy++) { + for (xx =-2; xx <= 3; xx++) { + if (!RndLocOk(xp + xx, yp + yy)) + found = FALSE; + } + } + if (found) break; - if (++v6 > 10000) { + + cnt++; + if (cnt > 10000) { InitRndLocObj(1, 1, OBJ_LAZSTAND); return; } } - AddObject(OBJ_LAZSTAND, v0, v1); - AddObject(OBJ_TNUDEM2, v0, v1 + 2); - AddObject(OBJ_STORYCANDLE, v0 + 1, v1 + 2); - AddObject(OBJ_TNUDEM3, v0 + 2, v1 + 2); - AddObject(OBJ_TNUDEW1, v0, v1 - 2); - AddObject(OBJ_STORYCANDLE, v0 + 1, v1 - 2); - AddObject(OBJ_TNUDEW2, v0 + 2, v1 - 2); - v4 = v0 - 1; - AddObject(OBJ_STORYCANDLE, v4, v1 - 1); - AddObject(OBJ_TNUDEW3, v4, v1); - AddObject(OBJ_STORYCANDLE, v4, v1 + 1); + AddObject(OBJ_LAZSTAND, xp, yp); + AddObject(OBJ_TNUDEM2, xp, yp + 2); + AddObject(OBJ_STORYCANDLE, xp + 1, yp + 2); + AddObject(OBJ_TNUDEM3, xp + 2, yp + 2); + AddObject(OBJ_TNUDEW1, xp, yp - 2); + AddObject(OBJ_STORYCANDLE, xp + 1, yp - 2); + AddObject(OBJ_TNUDEW2, xp + 2, yp - 2); + AddObject(OBJ_STORYCANDLE, xp - 1, yp - 1); + AddObject(OBJ_TNUDEW3, xp - 1, yp); + AddObject(OBJ_STORYCANDLE, xp - 1, yp + 1); } void InitObjects()