Skip to content

v50.0.0

Choose a tag to compare

@cwtickle cwtickle released this 24 Aug 21:15
· 45 commits to develop since this release
Immutable release. Only release title and notes can be modified.
01c0370

Changelog: English | Japanese

GitHub Releases (by Release) GitHub commits since tagged version (branch)

▼ 更新用ファイルは下記 Files changed より
本体更新方法 / サポートバージョン / ソース構成 / 譜面の作成概要
要望・不具合報告 ( Discord )

v49.6.1 -> v50.0.0 ( vs. latest v50 ) 📁 ▶️

🔃 Files changed (v50)

  • danoni_setting.js の変更は、追加した設定を使用しない限り、更新不要です。
  • legacy_functions.js は過去関数群です。
フォルダ
Directory
ファイル名
FileName
最終更新
Last Updated
/js danoni_main.js 📥 v50.0.0
/js/lib danoni_constants.js 📥 v50.0.0
(参考)v49以前の差分ファイル一覧
フォルダ ファイル名 最終更新
/js/lib legacy_functions.js 📥 v42.0.0
/js/lib danoni_localbinary.js 📥 v15.1.0
/js/template danoni_setting(-template).js 📥 v45.0.0
/css danoni_main.css 📥 v48.0.0
/skin danoni_skin_default.css
danoni_skin_light.css
danoni_skin_skyblue.css
📥 v48.0.0
/img aaShadow.svg
arrow.svg
arrowShadow.svg
borderline.svg
c.svg
cursor.svg
giko.svg
iyo.svg
monar.svg
morara.svg
onigiri.svg
📥 v15.1.0

Download Download

Details (詳細)

⭐ New Features

  • 特定のカスタムキー(系統)への切替時に、関連設定を自動的に入れ替え・復元する仕組み(registerKeyFamily/resolveKeyFamily)を追加 ( PR #2203 )

📝 Chores

  • Migrate Wiki Changelog Links to Support Branchにおいて除外mdファイルを更新 ( PR #2201 )

🐝 Functions & Variables Changed

Functions & Variables
Add registerKeyFamily, resolveKeyFamily, applyIfChanged, getPathVal, setPathVal
Change
Delete

🍀 Remarks

1. 特定のカスタムキーへの切替時に一部設定を入れ替えるための補助関数を追加

  • キリズマ、パンパネのカスタムJSでは、一部の設定を有効にすると動作に支障が出るため、外部からブロックする処理を入れています。
  • ただ、これまではキリズマ、パンパネのカスタムJSが同居した場合、それぞれのカスタムJSが状態を意識しておかないと、別のキーモードに切り替えた時にうまく動作しない問題が発生していました。
  • こういった切り替え制御をカスタムJSに任せるのではなく、本体側で制御することで、カスタムJS側で複雑なフラグ管理を不要にします。

キリズマでの設定例

const origImgTypeArr = g_headerObj.imgType;
const origImgTypeNames = g_keycons.imgTypes;
const kirizmaImgTypeArr = [...];
const kirizmaImgTypeNames = [`kirizma`];
const origLocalImg = { C_IMG_AASD, C_IMG_C };
const kirizmaLocalImg = { ... };

registerKeyFamily(`kirizma`, isKirizmaKey, {
	'g_diffObj.arrowJdgY': -10,
	'g_diffObj.frzJdgY': -50,
	'g_posObj.distY': () => DIST_KIRIZMA - C_STEP_Y  g_posObj.stepYR,
	'g_posObj.reverseStepY': () => g_posObj.distY - g_posObj.stepY - g_posObj.stepDiffY - C_ARW_WIDTH,
	'g_posObj.arrowHeight': () => DIST_KIRIZMA  g_posObj.stepYR - g_posObj.stepDiffY * 2,
}, {
	onAcquire: () => {
		g_headerObj.imgType = kirizmaImgTypeArr;
		g_keycons.imgTypes = kirizmaImgTypeNames;
		if (g_imgType !== `kirizma`) {
			g_imgType = `kirizma`;
			g_stateObj.rotateEnabled = kirizmaImgTypeArr[0].rotateEnabled;
			g_stateObj.flatStepHeight = kirizmaImgTypeArr[0].flatStepHeight;
			if (g_isFile) {
				C_IMG_AASD = kirizmaLocalImg.C_IMG_AASD;
				C_IMG_C = kirizmaLocalImg.C_IMG_C;
				reloadImgObj();
			} else {
				updateImgType(kirizmaImgTypeArr[0]);
			}
		}
		if (!g_headerObj.keyLists.every(isKirizmaKey)) {
			// (既存のクレジットボタン表示処理)
		}
	},
	onRelease: () => {
		g_headerObj.imgType = origImgTypeArr;
		g_keycons.imgTypes = origImgTypeNames;
		if (g_imgType !== origImgTypeNames[0]) {
			g_imgType = origImgTypeNames[0];
			g_stateObj.rotateEnabled = origImgTypeArr[0].rotateEnabled;
			g_stateObj.flatStepHeight = origImgTypeArr[0].flatStepHeight;
			if (g_isFile) {
				C_IMG_AASD = origLocalImg.C_IMG_AASD;
				C_IMG_C = origLocalImg.C_IMG_C;
				reloadImgObj();
			} else {
				updateImgType(origImgTypeArr[0]);
			}
		}
		// (既存のクレジットボタン削除処理)
	},
});

パンパネでの設定例

const origLblReverse = g_lblNameObj.Reverse;
const origLblUReverse = g_lblNameObj[`u_Reverse`];
const origMsgReverse = g_msgObj.reverse;
const panelReverseMsg = { ... };
const origImgTypeArr = g_headerObj.imgType;
const origImgTypeNames = g_keycons.imgTypes;
const panelsImgTypeArr = [...];
const panelsImgTypeNames = [`panels`]; 
const origLocalImg = { C_IMG_AASD, C_IMG_C };
const panelLocalImg = { ... };

registerKeyFamily(`panel`, isPanelKey, {
	'g_headerObj.arrowEffectUseOrg': false,
	'g_stateObj.d_arroweffect': C_FLG_ON,
	'g_headerObj.stepAreaUse': false,
	'g_headerObj.effectUse': false,
	'g_headerObj.camoufrageUse': false,
	'g_headerObj.swappingUse': false,
	'g_stateObj.stepArea': `Default`,
	'g_stateObj.effect': C_FLG_OFF,
	'g_stateObj.camoufrage': C_FLG_OFF,
	'g_stateObj.swapping': C_FLG_OFF,
	'g_diffObj.arrowJdgY': -160,
	'--panel-offset-x': () => `${(g_sWidth - g_keyObj[`minWidth${g_keyObj.currentKey}`]) / 2}px`,
}, {
	onAcquire: () => {
		g_lblNameObj.Reverse = `Dynamic`;
		g_lblNameObj[`u_Reverse`] = `Dynamic`;
		g_msgObj.reverse = panelReverseMsg[g_localeObj.val] ?? panelReverseMsg.Ja;
		lblReverse.innerText = `Dynamic`;
		btnReverse.innerText = `Dynamic:${getStgDetailName(g_stateObj.reverse)}`;
		lblReverse.title = g_msgObj.reverse;

		g_headerObj.imgType = panelsImgTypeArr;
		g_keycons.imgTypes = panelsImgTypeNames;
		if (!g_headerObj.keyLists.every(isPanelKey)) {
			// (既存のクレジットボタン表示処理)
		}
		if (g_imgType !== `panels`) {
			// (既存のimgType切替処理・file://分岐)
		}
	},
	onRelease: () => {
		g_lblNameObj.Reverse = origLblReverse;
		g_lblNameObj[`u_Reverse`] = origLblUReverse;
		g_msgObj.reverse = origMsgReverse;
		lblReverse.innerText = origLblReverse;
		btnReverse.innerText = `${origLblReverse}:${getStgDetailName(g_stateObj.reverse)}`;
		lblReverse.title = origMsgReverse;
		deleteDiv(divRoot, `lnkCreditP`);

		g_headerObj.imgType = origImgTypeArr;
		g_keycons.imgTypes = origImgTypeNames;
		if (g_imgType !== origImgTypeNames[0]) {
			// (既存のimgType復元処理・file://分岐)
		}
	},
}, {
	'--panel-offset-x': value => document.documentElement.style.setProperty(`--panel-offset-x`, value),
});

💡 Recent Changes