From 1012aada117f3e4fca5947a575e0a109a7742fba Mon Sep 17 00:00:00 2001 From: qndel Date: Sat, 30 Mar 2019 22:31:02 +0100 Subject: [PATCH] AddInitItems almost bin exact --- Source/items.cpp | 65 ++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/Source/items.cpp b/Source/items.cpp index d2c1ad31a..90425c138 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -669,41 +669,36 @@ BOOL __fastcall ItemPlace(int xp, int yp) void __cdecl AddInitItems() { - int i; // eax - int ii; // ebx - int xx; // esi - int yy; // eax - int j; // eax - - i = random(11, 3) + 3; - if (i > 0) { - do { - ii = itemavail[0]; - itemactive[numitems] = itemavail[0]; - itemavail[0] = itemavail[MAXITEMS - numitems - 1]; - do { - xx = random(12, 80) + 16; - yy = random(12, 80) + 16; - } while (!ItemPlace(xx, yy)); - item[ii]._ix = xx; - item[ii]._iy = yy; - dItem[xx][yy] = ii + 1; - j = GetRndSeed(); - item[ii]._iSeed = j; - SetRndSeed(j); - if (random(12, 2)) - GetItemAttrs(ii, IDI_HEAL, currlevel); - else - GetItemAttrs(ii, IDI_MANA, currlevel); - item[ii]._iCreateInfo = currlevel + -32768; - SetupItem(ii); - item[ii]._iAnimFlag = FALSE; - item[ii]._iAnimFrame = item[ii]._iAnimLen; - item[ii]._iSelFlag = 1; - DeltaAddItem(ii); - ++numitems; - --i; - } while (i); + BOOL k; + int x, y, i, j, rnd; + + rnd = random(11, 3) + 3; + for (j = 0; j < rnd; ++j) { + i = itemavail[0]; + itemavail[0] = itemavail[127 - numitems - 1]; + itemactive[numitems] = i; + x = random(12, 80) + 16; + y = random(12, 80) + 16; + for (k = ItemPlace(x, y); !k; k = ItemPlace(x, y)) { + x = random(12, 80) + 16; + y = random(12, 80) + 16; + } + item[i]._ix = x; + item[i]._iy = y; + dItem[x][y] = i + 1; + item[i]._iSeed = GetRndSeed(); + SetRndSeed(item[i]._iSeed); + if (random(12, 2)) + GetItemAttrs(i, IDI_HEAL, currlevel); + else + GetItemAttrs(i, IDI_MANA, currlevel); + item[i]._iCreateInfo = currlevel + -32768; + SetupItem(i); + item[i]._iAnimFrame = item[i]._iAnimLen; + item[i]._iAnimFlag = 0; + item[i]._iSelFlag = 1; + DeltaAddItem(i); + numitems++; } }