diff --git a/Source/items.cpp b/Source/items.cpp index 915524e59..fa6fe314a 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -2929,51 +2929,30 @@ void SpawnQuestItem(int itemid, int x, int y, int randarea, int selflag) void SpawnRock() { - BOOL v0; // edx - int v1; // eax - int v2; // ecx - BOOL v3; // ebx - int v4; // ebx - int v5; // ecx - int v6; // esi - int *v7; // edx - int v8; // eax - int v9; // edi - int v10; // ST04_4 - //int v11; // [esp+8h] [ebp-4h] - - v0 = 0; - v1 = 0; - if (nobjects > 0) { - v2 = 0; //v11; /* chceck */ - while (!v0) { - v2 = objectactive[v1]; - v3 = object[objectactive[v1++]]._otype == OBJ_STAND; - v0 = v3; - if (v1 >= nobjects) { - if (!v3) - return; - break; - } - } - v4 = itemavail[0]; - v5 = v2; - v6 = itemavail[0]; - v7 = &itemavail[MAXITEMS - numitems - 1]; - itemactive[numitems] = itemavail[0]; - v8 = object[v5]._ox; - item[v6]._ix = v8; - v9 = object[v5]._oy; - itemavail[0] = *v7; - dItem[v8][v9] = v4 + 1; - v10 = currlevel; - item[v6]._iy = v9; - GetItemAttrs(v4, IDI_ROCK, v10); - SetupItem(v4); - ++numitems; - item[v6]._iSelFlag = 2; - item[v6]._iPostDraw = TRUE; - item[v6]._iAnimFrame = 11; + int i, ii; + int xx, yy; + int ostand; + + ostand = FALSE; + for (i = 0; i < nobjects && !ostand; i++) { + ii = objectactive[i]; + ostand = object[ii]._otype == OBJ_STAND; + } + if (ostand) { + i = itemavail[0]; + itemavail[0] = itemavail[127 - numitems - 1]; + itemactive[numitems] = i; + xx = object[ii]._ox; + yy = object[ii]._oy; + item[i]._ix = xx; + item[i]._iy = yy; + dItem[xx][item[i]._iy] = i + 1; + GetItemAttrs(i, 7, currlevel); + SetupItem(i); + item[i]._iSelFlag = 2; + item[i]._iPostDraw = 1; + item[i]._iAnimFrame = 11; + numitems++; } }