diff --git a/Source/items.cpp b/Source/items.cpp index 584413f24..06d0b7e43 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -5540,18 +5540,20 @@ void __fastcall CreateMagicItem(int x, int y, int imisc, int icurs, int sendmsg, bool done; // [esp+Ch] [ebp-4h] done = 0; - idx = RndTypeItems(imisc, 0); if ( numitems < 127 ) { ii = itemavail[0]; GetSuperItemSpace(x, y, itemavail[0]); itemactive[numitems] = ii; itemavail[0] = itemavail[-numitems + 126]; + idx = RndTypeItems(imisc, 0); do { SetupAllItems(ii, idx, GetRndSeed(), 2 * currlevel, 1, 1, 0, delta); if ( item[ii]._iCurs == icurs ) done = 1; + else + idx = RndTypeItems(imisc, 0); } while ( !done ); if ( sendmsg )