Surbrillance

Au menu, la mise en surbrillance.
Ne pas oublier (comme c’est écrit au memento) de mettre à TRUE le RenderCustomDepthPass de tout mesh qui permet la surbrillance et de modifier les paramètres de collision de ce mesh pour bloquer ‘Highlight’, le canal dédié créé au project settings.

Après ça, modification du pointeur de la souris en passant sur certains objets.

Ca pue les BPIs dans tous les coins, pas le choix, faut bien que je m’y mette.

Shops terminés

Vérifications en cours, je suis satisfait du système. Dès les vérifications terminées, je pense qu’il ne reste pas beaucoup de bugs, j’en aurai terminé avec la plomberie et je commencerai le système de combat.

Trois fois

Trois fois sur la journée que j’efface tout et que je repars d’un backup pour la phase finale des shops. J’ai pas la tête à l’endroit.

Bon, c’est reparti pour un tour, bien tout analyser et je recommence demain.

Sacs de loot

Terminé la programmation des sacs de loots, soit laissés à la mort des mobs, soit utilisés par les joueurs pour lâcher des objets au sol, pour se débarrasser de l’inutile ou pour échanger des objets avec quelqu’un.

C’est terminé et ça fonctionne. Le code est un peu dégueulasse parce que je réutilise le même que pour les coffres avec quelques subtilités comme la destruction automatique d’un sac après 5 minutes ou dès qu’il est vide. J’aurais pu faire plus propre mais c’était beaucoup plus de travail vu que ces sacs ont besoin de l’accès multi-joueurs et le déplacement des fenêtres d’inventaire à l’écran, déjà codés dans les inventaires de coffres.

Comme je n’entrevois pas d’autre type de conteneurs, si ça fonctionne bien comme ça, on fera avec.

Prochaine étape : les marchands. Ca, c’est le gros morceau, aucune idée de comment ça va se passer, on verra. Et après les marchands, je vais soit attaquer la garde-robe, soit le combat, pas encore décidé.

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.