Skip to content

Instantly share code, notes, and snippets.

@miahmie
Last active June 28, 2020 14:04
Show Gist options
  • Save miahmie/43aa5e507c5479509da9482a6c35d751 to your computer and use it in GitHub Desktop.
Save miahmie/43aa5e507c5479509da9482a6c35d751 to your computer and use it in GitHub Desktop.
deffontにitalicを増やす

deffontにitalicを増やす

MessageLayer.tjs を改造して [deffont] タグを italic に対応します。 基本的には defaultBold の実装をコピペするだけでOKかと思われます。

//class MessageLayer冒頭
	/*CS*/var defaultBold = true; // デフォルトでボールドで描画するか
	/*CS*/var defaultItalic = false; // デフォルトでイタリックで描画するか

//function resetFont()内
		lineLayer.font.bold = bold = defaultBold;
		lineLayer.font.italic=defaultItalic;
		// ※↑の実装は既にあるので追記でなく改造してください。

//function setFont(elm)内
		if(elm.bold == 'default')
			lineLayer.font.bold = defaultBold;
		else if(elm.bold !== void)
			lineLayer.font.bold = +elm.bold;

		if(elm.italic == 'default')
			lineLayer.font.italic = defaultItalic;
		else if(elm.italic !== void)
			lineLayer.font.italic = +elm.italic;
		// ※↑の実装は既にあるので追記でなく改造してください。

//function setDefaultFont(elm)内
		defaultBold = +elm.bold if elm.bold !== void;
		defaultItalic = +elm.italic if elm.italic !== void;

//function internalAssign(src, copyvisiblestate)内
		defaultBold = src.defaultBold;
		defaultItalic = src.defaultItalic;

//function store()内
		dic.defaultBold = defaultBold;
		dic.defaultItalic = defaultItalic;

//function restore(dic)内
		defaultBold = dic.defaultBold if dic.defaultBold !== void;
		defaultItalic = dic.defaultItalic if dic.defaultItalic !== void;

MessageLayerが改造版で他にもdefaultBoldを操作している箇所があれば同様に対応します。

また,過去のセーブデータの互換を重視するのであれば,最後のrestore関数内の実装は

		defaultItalic = dic.defaultItalic !== void ? dic.defaultItalic : false;

の方が良いかもしれません。 (現在のデフォルトがイタリック状態で,過去のバージョンのイタリック情報がないデータをロードしたときにイタリックを解除する実装になります)

なお,

	/*C*/var bold; // ボールドで描画するか

の変数がありますが,こちらのitalic対応版は特に必要ない(bold自身が参照されている箇所がなさそうなので)かと思われます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment