diff --git a/Source/towners.cpp b/Source/towners.cpp index 474799a81..54ba5e615 100644 --- a/Source/towners.cpp +++ b/Source/towners.cpp @@ -588,22 +588,16 @@ void __cdecl ProcessTowners() } } -ItemStruct *__fastcall PlrHasItem(int pnum, int item, int *i) +ItemStruct *__fastcall PlrHasItem(int pnum, int item, int *inv_item_num) { - unsigned int v3; // eax - int v4; // ecx - - v3 = 21720 * pnum; - *i = 0; - if (plr[pnum]._pNumInv <= 0) - return 0; - while (*(int *)((char *)&plr[0].InvList[*i].IDidx + v3) != item) { - v4 = *i + 1; - *i = v4; - if (v4 >= plr[v3 / 0x54D8]._pNumInv) - return 0; + int i; + + for (i = 0, *inv_item_num = i; i < plr[pnum]._pNumInv; i = *inv_item_num + 1, *inv_item_num = i) { + if (plr[pnum].InvList[*inv_item_num].IDidx == item) + return &plr[pnum].InvList[*inv_item_num]; } - return (ItemStruct *)((char *)&plr[0].InvList[*i] + v3); + + return NULL; } void __fastcall TownerTalk(int t)