Je suis tombé sur un bug vicieux de Slate, ce qui sert de support à l’interface d’Unreal. Quand le serveur échange deux objets de place suite à un clic droit, par exemple en changeant d’arme au paperdoll, Slate reste coincé lorsque j’initie le click down. J’ai donc dû repasser toute la mécanique de clic droit au click up. Et je me suis rendu compte qu’il était impossible, par exemple, d’envoyer un objet dans sa banque par clic droit.
J’ai pris mon courage à deux mains et j’ai ré-écrit tout le code de gestion des clics souris dans les inventaires en utilisant un ordre de préséance : si un marchand est ouvert, c’est d’abord à lui que s’adresse le clic droit, ce sera donc une vente. Ensuite je teste le paperdoll, puis la banque et enfin le loot qui lui ne réagit pas au clic droit car il est impossible pour un objet d’inventaire de savoir de quel inventaire de loot il provenait – sans programmer une usine à gaz.
Ca m’a pris la journée et c’était pas marrant !