danoniplus 46.5.0 → 46.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -68,6 +68,7 @@ If the life of the life gauge remains by the end of the game or it is over the q
68
68
  ## How to Make / 作り方
69
69
 
70
70
  - [How to make chart overview](https://github.com/cwtickle/danoniplus-docs/wiki/HowtoMake) / [譜面の作成概要](https://github.com/cwtickle/danoniplus/wiki/HowtoMake)
71
+ - [Creating chart Using the Preview Site](https://github.com/cwtickle/danoniplus-docs/wiki/HowToUsePreview-Example) / [プレビューサイトを使った譜面の作成](https://github.com/cwtickle/danoniplus/wiki/HowToUsePreview-Example)
71
72
  - [ParaFla!ソース利用者向け移行方法 (Japanese Only)](https://github.com/cwtickle/danoniplus/wiki/forParaFlaUser)
72
73
 
73
74
  ### How to Install / 導入方法
package/js/danoni_main.js CHANGED
@@ -8,8 +8,8 @@
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 46.5.0`;
12
- const g_revisedDate = `2026/03/29`;
11
+ const g_version = `Ver 46.5.1`;
12
+ const g_revisedDate = `2026/03/30`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -919,7 +919,7 @@ const blockCode = _setCode => !C_BLOCK_KEYS.includes(_setCode);
919
919
  * キーを押したときの動作(汎用)
920
920
  * @param {KeyboardEvent} _evt
921
921
  * @param {string} _displayName
922
- * @param {function} _func
922
+ * @param {Function} _func
923
923
  * @param {boolean} _dfEvtFlg
924
924
  * @returns {boolean}
925
925
  */
@@ -1006,7 +1006,7 @@ const createScTextCommon = _displayName => {
1006
1006
  /**
1007
1007
  * ショートカットキー有効化
1008
1008
  * @param {string} _displayName
1009
- * @param {function} _func
1009
+ * @param {Function} _func
1010
1010
  * @param {boolean} [object.displayFlg=true]
1011
1011
  * @param {boolean} [object.dfEvtFlg=false]
1012
1012
  */
@@ -1626,7 +1626,7 @@ const createImg = (_id, _imgPath, _x, _y, _width, _height) => {
1626
1626
  * ColorPickerの作成
1627
1627
  * @param {string} _parentObj
1628
1628
  * @param {string} _id
1629
- * @param {function} _func
1629
+ * @param {Function} _func
1630
1630
  * @param {number} [object.x=0]
1631
1631
  * @param {number} [object.y=0]
1632
1632
  * @returns {HTMLInputElement}
@@ -1809,7 +1809,7 @@ const deleteDiv = (_parentId, _idName) => {
1809
1809
  * ボタンの作成 (CSS版・拡張属性対応)
1810
1810
  * @param {string} _id
1811
1811
  * @param {string} _text
1812
- * @param {function} _func
1812
+ * @param {Function} _func
1813
1813
  * @param {number} [object.x]
1814
1814
  * @param {number} [object.y]
1815
1815
  * @param {number} [object.w=g_btnWidth() / 3]
@@ -1819,8 +1819,8 @@ const deleteDiv = (_parentId, _idName) => {
1819
1819
  * @param {string} [object.title] ボタンオンマウス時のコメント
1820
1820
  * @param {string} [object.groupName] 画面名 (g_btnWaitFrameで定義しているプロパティ名を指定)
1821
1821
  * @param {boolean} [object.initDisabledFlg=true] ボタン有効化までの時間を設けるかどうか
1822
- * @param {function} [object.resetFunc] カスタム処理後に実行する処理
1823
- * @param {function} [object.cxtFunc] 右クリック時に実行する処理
1822
+ * @param {Function} [object.resetFunc] カスタム処理後に実行する処理
1823
+ * @param {Function} [object.cxtFunc] 右クリック時に実行する処理
1824
1824
  * @param {...any} [object.rest]
1825
1825
  * @param {...any} _classes
1826
1826
  */
@@ -2180,7 +2180,7 @@ const checkDuplicatedObjects = _obj => {
2180
2180
  /**
2181
2181
  * 多層スプライトデータの作成処理
2182
2182
  * @param {string} _data
2183
- * @param {function} _calcFrame
2183
+ * @param {Function} _calcFrame
2184
2184
  * @returns [多層スプライトデータ, 最大深度]
2185
2185
  */
2186
2186
  const makeSpriteData = (_data, _calcFrame = _frame => _frame) => {
@@ -2270,7 +2270,7 @@ const makeSpriteData = (_data, _calcFrame = _frame => _frame) => {
2270
2270
  /**
2271
2271
  * スタイル変更データの作成処理
2272
2272
  * @param {string} _data
2273
- * @param {function} _calcFrame
2273
+ * @param {Function} _calcFrame
2274
2274
  * @returns [多層スプライトデータ, 1(固定)]
2275
2275
  */
2276
2276
  const makeStyleData = (_data, _calcFrame = _frame => _frame) => {
@@ -4877,7 +4877,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
4877
4877
  * - charaX の場合に限り、a>5_0 の形式を aleft, adown, aup, aright, aspace に変換する
4878
4878
  * @param {string} _str
4879
4879
  * @param {string} _name
4880
- * @param {function} _convFunc
4880
+ * @param {Function} _convFunc
4881
4881
  * @returns {string[]|number[]}
4882
4882
  */
4883
4883
  const expandKeyPtn = (_str, _name, _convFunc) => {
@@ -4896,10 +4896,10 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
4896
4896
  * 新キー用複合パラメータ
4897
4897
  * @param {string} _key キー数
4898
4898
  * @param {string} _name 名前
4899
- * @param {function} _convFunc マッピング関数
4899
+ * @param {Function} _convFunc マッピング関数
4900
4900
  * @param {string} object.errCd エラーコード
4901
4901
  * @param {boolean} object.baseCopyFlg コピー配列の準備可否
4902
- * @param {function} object.loopFunc パターン別に処理する個別関数
4902
+ * @param {Function} object.loopFunc パターン別に処理する個別関数
4903
4903
  * @returns {number} 最小パターン数
4904
4904
  */
4905
4905
  const newKeyMultiParam = (_key, _name, _convFunc, { errCd = ``, baseCopyFlg = false, loopFunc = () => true } = {}) => {
@@ -5740,8 +5740,8 @@ const playBGM = async (_num, _currentLoopNum = g_settings.musicLoopNum) => {
5740
5740
  * @param {number} startVolume - 開始音量 (0〜1)
5741
5741
  * @param {number} endVolume - 終了音量 (0〜1)
5742
5742
  * @param {number} step - 1ステップの増減量
5743
- * @param {function} onEnd - フェード完了時の処理
5744
- * @param {function} isValid - フェード継続条件(true: 継続, false: 中断)
5743
+ * @param {Function} onEnd - フェード完了時の処理
5744
+ * @param {Function} isValid - フェード継続条件(true: 継続, false: 中断)
5745
5745
  * @returns {number} timeoutId
5746
5746
  */
5747
5747
  const fadeVolume = (startVolume, endVolume, step, onEnd, isValid) => {
@@ -5787,9 +5787,9 @@ const playBGM = async (_num, _currentLoopNum = g_settings.musicLoopNum) => {
5787
5787
 
5788
5788
  /**
5789
5789
  * 汎用ポーリング(監視)処理
5790
- * @param {function} check - 条件チェック関数(true なら終了)
5791
- * @param {function} onEnd - 終了時の処理
5792
- * @param {function} isValid - 継続条件(true: 継続, false: 中断)
5790
+ * @param {Function} check - 条件チェック関数(true なら終了)
5791
+ * @param {Function} onEnd - 終了時の処理
5792
+ * @param {Function} isValid - 継続条件(true: 継続, false: 中断)
5793
5793
  * @returns {number} timeoutId
5794
5794
  */
5795
5795
  const poll = (check, onEnd, isValid) => {
@@ -6216,7 +6216,7 @@ const dataMgtInit = () => {
6216
6216
  * @param {number} _heightPos
6217
6217
  * @param {number} _widthPos
6218
6218
  * @param {number} [w=125]
6219
- * @param {function} func
6219
+ * @param {Function} func
6220
6220
  * @returns {HTMLDivElement}
6221
6221
  */
6222
6222
  const createMgtButton = (_name, _heightPos, _widthPos, { w = 125, func = () => true, ...rest } = {}) => {
@@ -6622,7 +6622,7 @@ const updateSettingSummary = () => {
6622
6622
 
6623
6623
  /**
6624
6624
  * PLAYボタンの作成
6625
- * @param {function} _func
6625
+ * @param {Function} _func
6626
6626
  * @returns {HTMLDivElement}
6627
6627
  */
6628
6628
  const makePlayButton = _func => createCss2Button(`btnPlay`, g_lblNameObj.b_play, () => true, {
@@ -7964,8 +7964,8 @@ const createOptionWindow = _sprite => {
7964
7964
  * @param {string} [object.unitName=''] 設定名の単位
7965
7965
  * @param {number[]} [object.skipTerms] ボタンの設定スキップ間隔(デフォルト:[1(外側), 1(内側), 1(最内側)])
7966
7966
  * @param {boolean} [object.hiddenBtn=false] 隠しボタン(ショートカットキーのみ)の利用有無
7967
- * @param {function} [object.addRFunc] 右側のボタンを押したときの追加処理
7968
- * @param {function} [object.addLFunc] 左側のボタンを押したときの追加処理
7967
+ * @param {Function} [object.addRFunc] 右側のボタンを押したときの追加処理
7968
+ * @param {Function} [object.addLFunc] 左側のボタンを押したときの追加処理
7969
7969
  * @param {string} [object.settingLabel=_settingName] 設定名
7970
7970
  * @param {string} [object.displayName] 画面名
7971
7971
  * @param {string} [object.scLabel=''] ショートカットキーの表示名
@@ -8071,7 +8071,7 @@ const getStgDetailName = _name => {
8071
8071
  * 設定メイン・汎用
8072
8072
  * @param {number} _scrollNum
8073
8073
  * @param {string} _settingName
8074
- * @param {function} [func=()=>true] 設定ボタンを押した後の追加処理
8074
+ * @param {Function} [func=()=>true] 設定ボタンを押した後の追加処理
8075
8075
  * @param {string} [unitName=''] 設定の単位名
8076
8076
  * @param {number} [roundNum=0] 設定スキップ間隔の丸め基準数
8077
8077
  */
@@ -8435,13 +8435,13 @@ const getKeyCtrl = (_localStorage, _extraKeyName = ``) => {
8435
8435
  * @param {string} _id
8436
8436
  * @param {string} _name 初期設定文字
8437
8437
  * @param {number} _heightPos 上からの配置順
8438
- * @param {function} _func 通常ボタン処理
8438
+ * @param {Function} _func 通常ボタン処理
8439
8439
  * @param {number} [object.x]
8440
8440
  * @param {number} [object.y]
8441
8441
  * @param {number} [object.w]
8442
8442
  * @param {number} [object.h]
8443
8443
  * @param {number} [object.siz]
8444
- * @param {function} [object.cxtFunc] 右クリック時の処理
8444
+ * @param {Function} [object.cxtFunc] 右クリック時の処理
8445
8445
  * @param {...any} [object.rest]
8446
8446
  * @param {...any} _classes 追加するクラス
8447
8447
  * @returns {HTMLDivElement}
@@ -8457,7 +8457,7 @@ const makeSettingLblCssButton = (_id, _name, _heightPos, _func, {
8457
8457
  * @param {string} _id
8458
8458
  * @param {string} _name 初期設定文字
8459
8459
  * @param {number} _heightPos 上からの配置順
8460
- * @param {function} _func
8460
+ * @param {Function} _func
8461
8461
  * @param {number} [object.x]
8462
8462
  * @param {number} [object.h]
8463
8463
  * @param {number} [object.y=h*_heightPos]
@@ -8478,7 +8478,7 @@ const makeDifLblCssButton = (_id, _name, _heightPos, _func, {
8478
8478
  * @param {string} _id
8479
8479
  * @param {string} _directionFlg 表示用ボタンのどちら側に置くかを設定。(R, RR:右、L, LL:左)
8480
8480
  * @param {number} _heightPos 上からの配置順
8481
- * @param {function} _func
8481
+ * @param {Function} _func
8482
8482
  * @param {number} [object.dx=0]
8483
8483
  * @param {number} [object.dy=0]
8484
8484
  * @param {number} [object.dw=0]
@@ -8815,11 +8815,11 @@ const exSettingInit = () => {
8815
8815
  * 拡張設定込みの標準設定
8816
8816
  * @param {any[]} _spriteList
8817
8817
  * @param {string} _name
8818
- * @param {{ defaultList?: string[], displayName?: string, func?: function, funcEx?: function }} [options={}]
8818
+ * @param {{ defaultList?: string[], displayName?: string, func?: Function, funcEx?: Function }} [options={}]
8819
8819
  * @param {string[]} [options.defaultList=[C_FLG_OFF]] 拡張設定未使用の設定リスト
8820
8820
  * @param {string} [options.displayName='exSetting']
8821
- * @param {function} [options.func=()=>true] 通常ボタン用追加関数
8822
- * @param {function} [options.funcEx=()=>true] 拡張ボタン用追加関数
8821
+ * @param {Function} [options.func=()=>true] 通常ボタン用追加関数
8822
+ * @param {Function} [options.funcEx=()=>true] 拡張ボタン用追加関数
8823
8823
  */
8824
8824
  const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF], displayName = `exSetting`,
8825
8825
  func = () => true, funcEx = () => true } = {}) => {
@@ -9178,14 +9178,14 @@ const keyConfigInit = (_kcType = g_kcType) => {
9178
9178
  * キーコンフィグ用設定ボタン
9179
9179
  * @param {string} _id
9180
9180
  * @param {string} _text
9181
- * @param {function} _func
9181
+ * @param {Function} _func
9182
9182
  * @param {number} [object.x=g_btnX(5 / 6) - 20]
9183
9183
  * @param {number} [object.y=15]
9184
9184
  * @param {number} [object.w=g_btnWidth(1 / 6)]
9185
9185
  * @param {number} [object.h=18]
9186
9186
  * @param {number} [object.siz=g_limitObj.jdgCntsSiz]
9187
9187
  * @param {string} [object.borderStyle='solid']
9188
- * @param {function} [object.cxtFunc]
9188
+ * @param {Function} [object.cxtFunc]
9189
9189
  * @param {...any} [object.rest]
9190
9190
  * @param {string} [_mainClass=g_cssObj.button_RevOFF]
9191
9191
  * @param {...any} _classes
@@ -9199,7 +9199,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
9199
9199
  * キーコンフィグ用ミニボタン
9200
9200
  * @param {string} _id
9201
9201
  * @param {string} _directionFlg
9202
- * @param {function} _func
9202
+ * @param {Function} _func
9203
9203
  * @param {number} [object.x=g_btnX(5 / 6) - 30]
9204
9204
  * @param {number} [object.y=15]
9205
9205
  * @param {number} [object.w=15]
@@ -9529,7 +9529,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
9529
9529
  * ColorPicker部分の作成
9530
9530
  * @param {number} _j
9531
9531
  * @param {string} _type
9532
- * @param {function} _func
9532
+ * @param {Function} _func
9533
9533
  * @param {number} [object.x=0]
9534
9534
  * @param {number} [object.y=15]
9535
9535
  */
@@ -9708,12 +9708,15 @@ const keyConfigInit = (_kcType = g_kcType) => {
9708
9708
  const keyCdObj = document.getElementById(`keycon${g_currentj}_${g_currentk}`);
9709
9709
  let setKey = g_kCdN.findIndex(kCd => kCd === kbCode);
9710
9710
 
9711
+ const C_KEY_ESCAPE = 27;
9712
+ const C_KEY_IME = 229;
9713
+
9711
9714
  // 全角切替、BackSpace、Deleteキー、Escキーは割り当て禁止
9712
9715
  // また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
9713
- const disabledKeys = [240, 242, 243, 244, 91, 29, 28, 27, 259, g_prevKey];
9716
+ const disabledKeys = [240, 242, 243, 244, 91, 29, 28, 259, g_prevKey];
9714
9717
 
9715
9718
  if (g_localeObj.val === `Ja`) {
9716
- disabledKeys.unshift(229);
9719
+ disabledKeys.unshift(C_KEY_IME);
9717
9720
  }
9718
9721
  if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
9719
9722
  makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
@@ -9722,14 +9725,20 @@ const keyConfigInit = (_kcType = g_kcType) => {
9722
9725
  return;
9723
9726
  }
9724
9727
  if (selectedKc === `TitleBack` || selectedKc === `Retry`) {
9728
+ // タイトルバックキー、リトライキーはプレイ中の操作キーと重複しないようにする(簡易的)
9729
+ if (g_keyObj[`keyCtrl${keyCtrlPtn}`].flat().includes(setKey)) {
9730
+ makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
9731
+ return;
9732
+ }
9725
9733
  // プレイ中ショートカットキー変更
9726
9734
  g_headerObj[`key${selectedKc}`] = setKey;
9727
9735
  g_headerObj[`key${selectedKc}Def`] = setKey;
9728
9736
  document.getElementById(`sc${selectedKc}`).textContent = getScMsg[selectedKc]();
9729
- document.getElementById(`sc${selectedKc}`).style.fontSize = `${getFontSize2(getScMsg[selectedKc](), g_btnWidth(5 / 12) - 40, { maxSiz: 13 })}px`;
9737
+ document.getElementById(`sc${selectedKc}`).style.fontSize =
9738
+ `${getFontSize2(getScMsg[selectedKc](), g_btnWidth(5 / 12) - 40, { maxSiz: g_limitObj.mainSiz })}px`;
9730
9739
  if (g_isMac) {
9731
9740
  scTitleBack.textContent = getScMsg.TitleBack();
9732
- scTitleBack.style.fontSize = `${getFontSize2(getScMsg.TitleBack(), g_btnWidth(5 / 12) - 40, { maxSiz: 13 })}px`;
9741
+ scTitleBack.style.fontSize = `${getFontSize2(getScMsg.TitleBack(), g_btnWidth(5 / 12) - 40, { maxSiz: g_limitObj.mainSiz })}px`;
9733
9742
  }
9734
9743
  changeConfigColor(document.getElementById(`sc${selectedKc}`),
9735
9744
  g_headerObj[`key${selectedKc}`] === g_headerObj[`key${selectedKc}Def2`] ?
@@ -9737,7 +9746,12 @@ const keyConfigInit = (_kcType = g_kcType) => {
9737
9746
  return;
9738
9747
  }
9739
9748
 
9740
- if (setKey === C_KEY_TITLEBACK && g_currentk === 0) {
9749
+ if (setKey === C_KEY_ESCAPE) {
9750
+ // リトライキー、タイトルバックキーにEscキーを割り当て可能にするため、
9751
+ // 例外的にEscキーで戻る対応をここで処理
9752
+ btnBack.click();
9753
+ return;
9754
+ } else if (setKey === C_KEY_TITLEBACK && g_currentk === 0) {
9741
9755
  return;
9742
9756
  }
9743
9757
 
@@ -9769,6 +9783,13 @@ const keyConfigInit = (_kcType = g_kcType) => {
9769
9783
  }
9770
9784
  });
9771
9785
 
9786
+ // 戻るボタンのショートカットキー表示
9787
+ multiAppend(btnBack,
9788
+ createDivCss2Label(`scKeyConfigBack`, `${g_lblNameObj.sc_keyConfigBack})`, {
9789
+ x: 0, siz: 12, fontWeight: `bold`, opacity: 0.75, align: C_ALIGN_LEFT,
9790
+ })
9791
+ );
9792
+
9772
9793
  safeExecuteCustomHooks(`g_skinJsObj.keyconfig`, g_skinJsObj.keyconfig);
9773
9794
  document.onkeyup = evt => commonKeyUp(evt);
9774
9795
  document.oncontextmenu = () => false;
@@ -11397,7 +11418,7 @@ const pushArrows = (_dataObj, _speedOnFrame, _firstArrivalFrame) => {
11397
11418
  * - この関数を使用する場合、配列グループの先頭2つが「フレーム数、矢印番号」となっていないと動作しない
11398
11419
  * @param {string} _type
11399
11420
  * @param {string} _header
11400
- * @param {function} _setFunc 後続実行関数
11421
+ * @param {Function} _setFunc 後続実行関数
11401
11422
  * @param {number} object._term 1セット当たりのデータ数(デフォルトは後続実行関数の引数の数-1, デフォルト引数・オブジェクト引数除く)
11402
11423
  * @param {boolean} object._colorFlg 個別色変化フラグ
11403
11424
  * @param {boolean} object._calcFrameFlg 逆算を無条件で行うかどうかの可否
@@ -15300,7 +15321,7 @@ const resultInit = () => {
15300
15321
  * @param {string} _id
15301
15322
  * @param {string} _name
15302
15323
  * @param {object} _posObj
15303
- * @param {function} _func
15324
+ * @param {Function} _func
15304
15325
  * @param {...any} _cssClass
15305
15326
  * @returns {HTMLDivElement}
15306
15327
  */
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2026/03/29 (v46.5.0)
8
+ * Revised : 2026/03/30 (v46.5.1)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -2903,7 +2903,7 @@ const g_shortcutObj = {
2903
2903
  KeyU: { id: `btnSettingSummary` },
2904
2904
  },
2905
2905
  keyConfig: {
2906
- Escape: { id: `btnBack` },
2906
+ //Escape: { id: `btnBack` }, // Escapeを別用途でも使用するため、ここではコメントアウト
2907
2907
  Backspace_Enter: { id: `btnPlay` },
2908
2908
  Backspace_NumpadEnter: { id: `btnPlay` },
2909
2909
  },
@@ -4399,6 +4399,7 @@ const g_lblNameObj = {
4399
4399
  sc_scroll: `R/<br>↑↓`,
4400
4400
  sc_adjustment: `- +`,
4401
4401
  sc_hitPosition: `T B`,
4402
+ sc_keyConfigBack: `Esc`,
4402
4403
  sc_keyConfigPlay: g_isMac ? `Del+Enter` : `BS+Enter`,
4403
4404
 
4404
4405
  g_start: `Start`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "46.5.0",
3
+ "version": "46.5.1",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "./js/danoni_main.js",
6
6
  "jsdelivr": "./js/danoni_main.js",