Fix ll galge plugin fl

This commit is contained in:
dazedanon 2026-03-04 13:58:34 -06:00
parent 95740fead4
commit c6fd9b8f96

View file

@ -371,7 +371,35 @@
} }
}; };
Window_GalgeChoiceList.prototype.wrapMessageText = function() {
const maxWidth = gcwWindowWidth - gcwWindowPadding * 2;
const tmp = new Bitmap(1, 1);
tmp.fontFace = $gameSystem.mainFontFace();
tmp.fontSize = $gameSystem.mainFontSize();
const wrapped = [];
messageTextLists.forEach(function(line) {
if (tmp.measureTextWidth(line) <= maxWidth) {
wrapped.push(line);
} else {
const words = line.split(" ");
let currentLine = "";
words.forEach(function(word) {
const testLine = currentLine ? currentLine + " " + word : word;
if (tmp.measureTextWidth(testLine) > maxWidth && currentLine) {
wrapped.push(currentLine);
currentLine = word;
} else {
currentLine = testLine;
}
});
if (currentLine) wrapped.push(currentLine);
}
});
messageTextLists = wrapped;
};
Window_GalgeChoiceList.prototype.start = function() { Window_GalgeChoiceList.prototype.start = function() {
this.wrapMessageText();
this.updatePlacement(); this.updatePlacement();
this.createCancelButton(); this.createCancelButton();
this.placeCancelButton(); this.placeCancelButton();
@ -596,9 +624,14 @@
return maxCols; return maxCols;
}; };
Window_GalgeChoiceList.prototype.breakLigatures = function(text) {
// Insert zero-width non-joiner (U+200C) to prevent missing ligature glyphs (fi, fl, ff, ffi, ffl, etc.)
return text.replace(/f([filt])/g, "f\u200C$1");
};
Window_GalgeChoiceList.prototype.setQuestionText = function() { Window_GalgeChoiceList.prototype.setQuestionText = function() {
messageTextLists.forEach((text, index) => { messageTextLists.forEach((text, index) => {
this.drawText(this.convertEscapeCharacters(text), 0, this.lineHeight() * index, this.innerWidth, "center"); this.drawText(this.breakLigatures(this.convertEscapeCharacters(text)), 0, this.lineHeight() * index, this.innerWidth, "center");
}, this); }, this);
}; };