diff --git a/Source/inv.cpp b/Source/inv.cpp index 367ba0e0f..08b2e39dd 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -2024,21 +2024,25 @@ void __fastcall AutoGetItem(int pnum, int ii) } // 48E9A8: using guessed type int AP2x2Tbl[10]; -int __fastcall FindGetItem(int indx, unsigned short ci, int iseed) +int __fastcall FindGetItem(int indx, WORD ci, int iseed) { - int i; // ebx - int ii; // esi + int i, ii; i = 0; if (numitems <= 0) return -1; + while (1) { ii = itemactive[i]; if (item[ii].IDidx == indx && item[ii]._iSeed == iseed && item[ii]._iCreateInfo == ci) break; - if (++i >= numitems) + + i++; + + if (i >= numitems) return -1; } + return ii; } diff --git a/Source/inv.h b/Source/inv.h index 3984834ca..55bbb98cb 100644 --- a/Source/inv.h +++ b/Source/inv.h @@ -28,7 +28,7 @@ void __fastcall CheckBookLevel(int pnum); void __fastcall CheckQuestItem(int pnum); void __fastcall InvGetItem(int pnum, int ii); void __fastcall AutoGetItem(int pnum, int ii); -int __fastcall FindGetItem(int indx, unsigned short ci, int iseed); +int __fastcall FindGetItem(int indx, WORD ci, int iseed); void __fastcall SyncGetItem(int x, int y, int idx, unsigned short ci, int iseed); int __fastcall CanPut(int i, int j); int __cdecl TryInvPut(); diff --git a/structs.h b/structs.h index de0dc211f..c6aadb50b 100644 --- a/structs.h +++ b/structs.h @@ -81,7 +81,7 @@ typedef struct ItemGetRecordStruct { typedef struct ItemStruct { int _iSeed; - unsigned short _iCreateInfo; + WORD _iCreateInfo; int _itype; int _ix; int _iy;