Fix: cas d'un objet est un conteneur fantôme
Lors d'une partie, la feuille d'un personnage a été bloquée. Après debug, il semble que l'objet a eu le flag estContenu=true sans être contenu. En regardant le json, il semble que des Item "objet" se sont retrouvés avec un champ "contenu", et que l'arbre des contenant a été cassé. Du coup: l'ajout dans un conteneur est maintenant "sécurisé" pour éviter l'accident. si on essaie d'ajouter dans un Item non conteneur, on positionne estContenu à false, et on corrige si possible le "contenu" de la cible, qui ne devrait pas être là.
This commit is contained in:
@ -304,12 +304,12 @@ export class RdDUtility {
|
||||
Handlebars.registerHelper('experienceLog-topic', topic => ExperienceLog.labelTopic(topic));
|
||||
|
||||
// Handle v12 removal of this helper
|
||||
Handlebars.registerHelper('select', function (selected, options) {
|
||||
Handlebars.registerHelper('select', function (selected, options) {
|
||||
const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected));
|
||||
const rgx = new RegExp(' value=[\"\']' + escapedValue + '[\"\']');
|
||||
const html = options.fn(this);
|
||||
return html.replace(rgx, "$& selected");
|
||||
});
|
||||
return html.replace(rgx, "$& selected");
|
||||
});
|
||||
|
||||
return loadTemplates(templatePaths);
|
||||
}
|
||||
@ -358,13 +358,15 @@ export class RdDUtility {
|
||||
let objetVersConteneur = {};
|
||||
// Attribution des objets aux conteneurs
|
||||
for (let conteneur of conteneurs) {
|
||||
conteneur.subItems = [];
|
||||
for (let id of conteneur.system.contenu ?? []) {
|
||||
let objet = inventaires.find(objet => (id == objet._id));
|
||||
if (objet) {
|
||||
objet.estContenu = true; // Permet de filtrer ce qui est porté dans le template
|
||||
objetVersConteneur[id] = conteneur._id;
|
||||
conteneur.subItems.push(objet);
|
||||
if (conteneur.isConteneur()) {
|
||||
conteneur.subItems = [];
|
||||
for (let id of conteneur.system.contenu ?? []) {
|
||||
let objet = inventaires.find(objet => (id == objet._id));
|
||||
if (objet) {
|
||||
objet.estContenu = true;
|
||||
objetVersConteneur[id] = conteneur._id;
|
||||
conteneur.subItems.push(objet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user