When you search the mall in the Mall Search Frame, the available vendors are listed by price. Certain NPC items are actually obtainable cheaper from a PC store, and therefore appear before the NPC store in the list.
When you purchase an item via "buy" or "acquire", however, if there is an NPC store with the item, that is always used.
MallSearchRequest is given a List<PurchaseRequest> to return all the vendors. When it adds the results from the search, for each item, if it is available in an NPC store, it adds that first, and then the results from PC stores.
The Mall Search Frame gives it a SortedListModel.
On the other hand, StoreManager.searchMall gives it an ArrayList.
That latter case should sort the results after it gets them so that the NPC stores get inserted into the appropriate place in the list.
When you purchase an item via "buy" or "acquire", however, if there is an NPC store with the item, that is always used.
MallSearchRequest is given a List<PurchaseRequest> to return all the vendors. When it adds the results from the search, for each item, if it is available in an NPC store, it adds that first, and then the results from PC stores.
The Mall Search Frame gives it a SortedListModel.
On the other hand, StoreManager.searchMall gives it an ArrayList.
That latter case should sort the results after it gets them so that the NPC stores get inserted into the appropriate place in the list.