Le bug impossible

Tout fonctionnait impeccablement aux inventaires du joueur et de la banque, et ce matin : patatras ! la banque reste désespérément vide !

Ai-je modifié quoi que ce soit au code ? Je ne pense pas !

Il m’aura fallu une journée pour déplomber ça : la table des slots existait une fois dans la définition de la classe d’inventaire au C++ (ce qui n’aurait jamais dû arriver, la classe qui contient les données ne peut pas contenir un élément d’affichage) et une fois dans la classe mère des widgets d’affichage. Pour les inventaires joueurs, ça marchait parce que cette table des slots affichés était créée à la fois dans le C++ et dans le widget, ce qu’il ne faut jamais faire. Et pour la banque, j’initialisais la table C++ et affichait la table blueprints qui elle n’était pas initialisée, donc ça ne pouvait pas marcher, jamais !

Or ça fonctionnait très bien jusque ce matin, c’est le genre de truc qui restera inexpliqué probablement jusqu’à la fin des temps.

Une journée pour tout vérifier en partant du backend et en remontant progressivement par l’API puis le C++ puis les blueprints, évidemment éclatés comme des grenade ananas.

Et deux minutes pour régler le problème une fois que j’ai vu l’hérésie du code. J’ai simplement viré le code C++ qui n’aurait jamais dû exister et rebranché dans les blueprints ce qui était orphelin. Deux minutes chrono !

Maintenant tout fonctionne, demain j’attaque la création des sacs de loot, soit ce que les monstres ou les joueurs laissent tomber au sol.