diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 84c9dd75..8224dac6 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -86,16 +86,13 @@ export class RdDTMRDialog extends Dialog { this._tellToGM(this.actor.name + " monte dans les terres médianes (" + tmrData.mode + ")"); } this.callbacksOnAnimate = []; - this.resizePixiTMR( - TMR_DISPLAY_SIZE.clamp(game.settings.get(SYSTEM_RDD, TMR_DISPLAY_SIZE.code) ?? TMR_DISPLAY_SIZE.def) - ) + const displaySize = TMR_DISPLAY_SIZE.clamp(game.settings.get(SYSTEM_RDD, TMR_DISPLAY_SIZE.code) ?? TMR_DISPLAY_SIZE.def); + this.pixiTMR = new PixiTMR(this, displaySize); + this.resizePixiTMR(displaySize) } resizePixiTMR(displaySize) { if (displaySize != this.displaySize) { - if (!this.pixiTMR) { - this.pixiTMR = new PixiTMR(this, displaySize); - } this.displaySize = displaySize this.pixiTMR.resizeTMR(displaySize); this._removeTokens() @@ -334,13 +331,10 @@ export class RdDTMRDialog extends Dialog { /* -------------------------------------------- */ async close() { - if (this.subdialog) { return this.forceTMRContinueAction() } - this.descenteTMR = true; - this.pixiTMR.close() if (this.actor.tmrApp) { this.actor.tmrApp = undefined; // Cleanup reference if (!this.viewOnly) { @@ -348,9 +342,11 @@ export class RdDTMRDialog extends Dialog { this._tellToGM(this.actor.name + " a quitté les terres médianes"); } await this.actor.santeIncDec((ReglesOptionnelles.isUsing("appliquer-fatigue") ? "fatigue" : "endurance"), - this.cumulFatigue) + this.cumulFatigue) } await super.close(); + this.pixiTMR.close() + this.pixiTMR = undefined } /* -------------------------------------------- */ diff --git a/module/tmr/pixi-tmr.js b/module/tmr/pixi-tmr.js index 2d078bc8..2984ad05 100644 --- a/module/tmr/pixi-tmr.js +++ b/module/tmr/pixi-tmr.js @@ -26,6 +26,7 @@ export class PixiTMR { this.tmrDialog = tmrDialog; this.callbacksOnAnimate = []; this.sizes = new TMRConstants({ size: displaySize }) + console.info(`Creation d'Application PIXI pour les TMR de ${tmrDialog.actor.name}`) this.pixiApp = new PIXI.Application(PixiTMR.computeTMRSize(this.sizes)); this.pixiApp.eventMode = 'static'; this.pixiApp.stage.sortableChildren = true; @@ -45,7 +46,9 @@ export class PixiTMR { } close() { - this.pixiApp.ticker.stop(); + console.info(`Destruction d'Application PIXI pour les TMR de ${this.tmrDialog.actor.name}`) + this.pixiApp.destroy(); + this.pixiApp = undefined } static computeTMRSize(sizeConstants) { return { width: sizeConstants.cellw * 13 + sizeConstants.marginx, height: sizeConstants.cellh / 2 + sizeConstants.cellh * 15 + sizeConstants.marginy }