Нормальный это минимизировать копирования. Т.е не хранить дополнительный itemlist, а обращаться к уже существующему, например, который мог бы храниться где-то на результат RequestItemList() и заполнять собой ItemWindow.
Я понимаю, что ItemWindow сам по себе контейнер, но верилось, что можно каким-то образом дотянуться до результата внутреннего запроса item list'a.
дёргать сервер на каждый чих
Этого конечно максимально не хочется)
Но так выйдет немного больше кода, + нужно его постоянно обновлять
Да, это то к чему все склоняет и это кажется костылем замедляющим работу клиента. У unrealscript 2 сам по себе медленный движок, как утверждает дока. А тут еще и копированием заполнять список.
Игрался сортировкой инвентаря и на неотсортированном массиве заметен фриз. Ладно там вписано(в тех исходах, что я смотрю) разбиение по группам айтемов и сортировка пузырьком(я её конечно заменил), но не фриз же при клике
Фильтр конечно менее требовательный чем сортировка, как минимум там нет ужасных swap'ов. Но тоже может привести к видимым проблемам, особенно когда начинает действительно быть нужным(если инвентарь расширить до 350+ и забить по фул)
Чисто теоретически возможно ли найти место где хранится результат RequestItemList(), если конечно оно хранится глобально и расширить нативный API random access доступом? И вообще можно ли расширять API, чтобы иметь к нему доступ через unreal script? Там реверс nwindow.dll или чего-то в таком роде
Да что уж, если иметь возможность править, то просто расширить UItemWindowHandle интерфейс методами hide, show и научить их показывать - не показывать и вообще прекрасно