danoniplus 29.3.5 → 29.4.2

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/js/danoni_main.js CHANGED
@@ -4,12 +4,12 @@
4
4
  *
5
5
  * Source by tickle
6
6
  * Created : 2018/10/08
7
- * Revised : 2023/01/20
7
+ * Revised : 2023/02/26
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 29.3.5`;
12
- const g_revisedDate = `2023/01/20`;
11
+ const g_version = `Ver 29.4.2`;
12
+ const g_revisedDate = `2023/02/26`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -580,6 +580,17 @@ const openLink = _url => {
580
580
  }
581
581
  };
582
582
 
583
+ /**
584
+ * URLのフルパスを取得
585
+ * @param {string} _url
586
+ * @returns
587
+ */
588
+ const getFullPath = _url => {
589
+ const link = document.createElement(`a`);
590
+ link.href = _url;
591
+ return link.href;
592
+ };
593
+
583
594
  /**
584
595
  * プリロードするファイルの設定
585
596
  * @param {string} _as
@@ -645,7 +656,7 @@ const loadScript2 = (_url, _requiredFlg = true, _charset = `UTF-8`) => {
645
656
  };
646
657
  script.onerror = _err => {
647
658
  if (_requiredFlg) {
648
- makeWarningWindow(g_msgInfoObj.E_0041.split(`{0}`).join(_url.split(`?`)[0]));
659
+ makeWarningWindow(g_msgInfoObj.E_0041.split(`{0}`).join(getFullPath(baseUrl)));
649
660
  reject(_err);
650
661
  } else {
651
662
  resolve(script);
@@ -673,7 +684,7 @@ const importCssFile2 = _href => {
673
684
  resolve(link);
674
685
  };
675
686
  link.onerror = _ => {
676
- makeWarningWindow(g_msgInfoObj.E_0041.split(`{0}`).join(baseUrl), { resetFlg: `title` });
687
+ makeWarningWindow(g_msgInfoObj.E_0041.split(`{0}`).join(getFullPath(baseUrl)), { resetFlg: `title` });
677
688
  resolve(link);
678
689
  };
679
690
  document.head.appendChild(link);
@@ -3564,6 +3575,12 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
3564
3575
  g_keyObj[`divMax${ptnName}`] = setVal(tmpDivPtn[1], -1, C_TYP_FLOAT);
3565
3576
  }
3566
3577
  }
3578
+ } else if (g_keyObj[`chara${newKey}_0`] !== undefined) {
3579
+ // 特に指定が無い場合はcharaX_Yの配列長で決定
3580
+ for (let k = 0; k < tmpMinPatterns; k++) {
3581
+ const ptnName = `${newKey}_${k + dfPtnNum}`;
3582
+ g_keyObj[`div${ptnName}`] = g_keyObj[`chara${newKey}_0`].length;
3583
+ }
3567
3584
  }
3568
3585
 
3569
3586
  // ステップゾーン位置 (posX_Y)
@@ -3602,6 +3619,14 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
3602
3619
 
3603
3620
  // シャッフルグループ (shuffleX_Y)
3604
3621
  newKeyTripleParam(newKey, `shuffle`);
3622
+ if (g_keyObj[`shuffle${newKey}_${dfPtnNum}_0`] === undefined) {
3623
+ // 特に指定が無い場合はcolorX_Yの配列長で決定
3624
+ for (let k = 0; k < tmpMinPatterns; k++) {
3625
+ const ptnName = `${newKey}_${k + dfPtnNum}`;
3626
+ g_keyObj[`shuffle${ptnName}_0`] = [...Array(g_keyObj[`color${ptnName}`].length)].fill(0);
3627
+ g_keyObj[`shuffle${ptnName}`] = structuredClone(g_keyObj[`shuffle${ptnName}_0`]);
3628
+ }
3629
+ }
3605
3630
 
3606
3631
  // スクロールパターン (scrollX_Y)
3607
3632
  // |scroll(newKey)=Cross::1,1,-1,-1,-1,1,1/Split::1,1,1,-1,-1,-1,-1$...|
@@ -4696,15 +4721,22 @@ const createOptionWindow = _sprite => {
4696
4721
  }
4697
4722
 
4698
4723
  const setReverse = _btn => {
4699
- g_settings.reverseNum = (g_settings.reverseNum + 1) % 2;
4700
- g_stateObj.reverse = g_settings.reverses[g_settings.reverseNum];
4701
- setReverseView(_btn);
4724
+ if (!g_settings.scrolls.includes(`Reverse`)) {
4725
+ g_settings.reverseNum = (g_settings.reverseNum + 1) % 2;
4726
+ g_stateObj.reverse = g_settings.reverses[g_settings.reverseNum];
4727
+ setReverseView(_btn);
4728
+ }
4702
4729
  };
4703
4730
 
4704
4731
  const setReverseView = _btn => {
4705
4732
  _btn.classList.replace(g_cssObj[`button_Rev${g_settings.reverses[(g_settings.reverseNum + 1) % 2]}`],
4706
4733
  g_cssObj[`button_Rev${g_settings.reverses[g_settings.reverseNum]}`]);
4707
- _btn.textContent = `${g_lblNameObj.Reverse}:${getStgDetailName(g_stateObj.reverse)}`;
4734
+ if (!g_settings.scrolls.includes(`Reverse`)) {
4735
+ _btn.textContent = `${g_lblNameObj.Reverse}:${getStgDetailName(g_stateObj.reverse)}`;
4736
+ } else {
4737
+ _btn.textContent = `X`;
4738
+ setReverseDefault();
4739
+ }
4708
4740
  };
4709
4741
 
4710
4742
  // ---------------------------------------------------
@@ -5097,6 +5129,10 @@ const createOptionWindow = _sprite => {
5097
5129
  spriteList[visibleScr].style.display = C_DIS_INHERIT;
5098
5130
  spriteList[hiddenScr].style.display = C_DIS_NONE;
5099
5131
  setSetting(0, visibleScr);
5132
+
5133
+ g_shortcutObj.option.KeyR.id = g_settings.scrolls.includes(`Reverse`) ?
5134
+ g_shortcutObj.option.KeyR.exId : g_shortcutObj.option.KeyR.dfId;
5135
+
5100
5136
  if (g_settings.scrolls.length > 1) {
5101
5137
  setReverseView(document.querySelector(`#btnReverse`));
5102
5138
  }
@@ -5280,11 +5316,18 @@ const getKeyReverse = (_localStorage, _extraKeyName = ``) => {
5280
5316
  g_stateObj.reverse = _localStorage[`reverse${_extraKeyName}`] ?? C_FLG_OFF;
5281
5317
  g_settings.reverseNum = roundZero(g_settings.reverses.findIndex(reverse => reverse === g_stateObj.reverse));
5282
5318
  } else {
5283
- g_stateObj.reverse = C_FLG_OFF;
5284
- g_settings.reverseNum = 0;
5319
+ setReverseDefault();
5285
5320
  }
5286
5321
  };
5287
5322
 
5323
+ /**
5324
+ * リバースのデフォルト化処理
5325
+ */
5326
+ const setReverseDefault = _ => {
5327
+ g_stateObj.reverse = C_FLG_OFF;
5328
+ g_settings.reverseNum = 0;
5329
+ };
5330
+
5288
5331
  /**
5289
5332
  * 保存済みキーコンフィグ取得処理
5290
5333
  * @param {object} _localStorage 保存先のローカルストレージ名
@@ -6433,7 +6476,7 @@ const loadMusic = _ => {
6433
6476
  lblLoading.textContent = g_lblNameObj.pleaseWait;
6434
6477
  setAudio(blobUrl);
6435
6478
  } else {
6436
- makeWarningWindow(`${g_msgInfoObj.E_0032}<br>(${request.status} ${request.statusText})`, { backBtnUse: true });
6479
+ makeWarningWindow(`${g_msgInfoObj.E_0041.split('{0}').join(getFullPath(musicUrl))}<br>(${request.status} ${request.statusText})`, { backBtnUse: true });
6437
6480
  }
6438
6481
  });
6439
6482
 
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2023/01/20 (v29.3.5)
8
+ * Revised : 2023/01/28 (v29.4.1)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -1182,7 +1182,7 @@ const g_shortcutObj = {
1182
1182
  KeyM: { id: `lnkMotionR` },
1183
1183
  ArrowUp: { id: `lnkScrollL` },
1184
1184
  ArrowDown: { id: `lnkScrollR` },
1185
- KeyR: { id: `lnkReverseR` },
1185
+ KeyR: { id: `lnkReverseR`, dfId: `lnkReverseR`, exId: `btnReverse` },
1186
1186
 
1187
1187
  ShiftLeft_KeyS: { id: `lnkShuffleL` },
1188
1188
  KeyS: { id: `lnkShuffleR` },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "29.3.5",
3
+ "version": "29.4.2",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {