danoniplus 34.3.1 → 34.4.0

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/10/15
7
+ * Revised : 2023/10/29
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 34.3.1`;
12
- const g_revisedDate = `2023/10/15`;
11
+ const g_version = `Ver 34.4.0`;
12
+ const g_revisedDate = `2023/10/29`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -552,6 +552,9 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
552
552
  return blockCode(setCode);
553
553
  }
554
554
  g_inputKeyBuffer[setCode] = true;
555
+ if (_evt.key === `Shift` && setCode === ``) {
556
+ g_inputKeyBuffer.ShiftRight = true;
557
+ }
555
558
 
556
559
  // 対象ボタンを検索
557
560
  const scLists = Object.keys(g_shortcutObj[_displayName]).filter(keys => {
@@ -563,6 +566,9 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
563
566
  // リンク先にジャンプする場合はonkeyUpイベントが動かないため、事前にキー状態をリセット
564
567
  if (g_shortcutObj[_displayName][scLists[0]].reset) {
565
568
  g_inputKeyBuffer[setCode] = false;
569
+ if (_evt.key === `Shift` && setCode === ``) {
570
+ g_inputKeyBuffer.ShiftRight = false;
571
+ }
566
572
  }
567
573
  // 対象ボタン処理を実行
568
574
  const targetId = document.getElementById(g_shortcutObj[_displayName][scLists[0]].id);
@@ -571,7 +577,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
571
577
  }
572
578
  return blockCode(setCode);
573
579
  }
574
- _func(setCode);
580
+ _func(setCode, _evt.key);
575
581
  return blockCode(setCode);
576
582
  };
577
583
 
@@ -3890,7 +3896,21 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
3890
3896
  g_keyObj[`minWidth${newKey}`] = _dosObj[`minWidth${newKey}`] ?? g_keyObj[`minWidth${newKey}`] ?? g_keyObj.minWidthDefault;
3891
3897
 
3892
3898
  // キーコンフィグ (keyCtrlX_Y)
3893
- g_keyObj.minPatterns = newKeyMultiParam(newKey, `keyCtrl`, toKeyCtrlArray, { errCd: `E_0104`, baseCopyFlg: true });
3899
+ g_keyObj.minPatterns = newKeyMultiParam(newKey, `keyCtrl`, toKeyCtrlArray, {
3900
+ errCd: `E_0104`, baseCopyFlg: true,
3901
+ loopFunc: (k, keyheader) => {
3902
+ const addShiftRKey = (_pattern = ``) => {
3903
+ const keyCtrls = g_keyObj[`${keyheader}_${k + g_keyObj.dfPtnNum}${_pattern}`];
3904
+ for (let j = 0; j < keyCtrls.length; j++) {
3905
+ if (keyCtrls[j].includes(256) && !keyCtrls[j].includes(260)) {
3906
+ keyCtrls[j].push(260);
3907
+ }
3908
+ }
3909
+ };
3910
+ addShiftRKey();
3911
+ addShiftRKey(`d`);
3912
+ },
3913
+ });
3894
3914
 
3895
3915
  // 読込変数の接頭辞 (charaX_Y)
3896
3916
  newKeyMultiParam(newKey, `chara`, toString);
@@ -6216,8 +6236,8 @@ const keyConfigInit = (_kcType = g_kcType) => {
6216
6236
  g_keycons.cursorNum = g_keycons.cursorNumList.findIndex(val => val === g_currentj);
6217
6237
  setKeyConfigCursor();
6218
6238
  }, {
6219
- x: keyconX, y: 50 + C_KYC_REPHEIGHT * k + keyconY,
6220
- w: C_ARW_WIDTH, h: C_KYC_REPHEIGHT, siz: g_limitObj.keySetSiz,
6239
+ x: keyconX - 5, y: 50 + C_KYC_REPHEIGHT * k + keyconY,
6240
+ w: C_ARW_WIDTH + 10, h: C_KYC_REPHEIGHT, siz: g_limitObj.keySetSiz,
6221
6241
  }, g_cssObj.button_Default_NoColor, g_cssObj.title_base)
6222
6242
  );
6223
6243
 
@@ -6726,9 +6746,14 @@ const keyConfigInit = (_kcType = g_kcType) => {
6726
6746
  );
6727
6747
 
6728
6748
  // キーボード押下時処理
6729
- setShortcutEvent(g_currentPage, setCode => {
6749
+ setShortcutEvent(g_currentPage, (kbCode, kbKey) => {
6730
6750
  const keyCdObj = document.querySelector(`#keycon${g_currentj}_${g_currentk}`);
6731
- let setKey = g_kCdN.findIndex(kCd => kCd === setCode);
6751
+ let setKey = g_kCdN.findIndex(kCd => kCd === kbCode);
6752
+
6753
+ // 右シフトキー対応
6754
+ if (setKey === 1 && kbKey === `Shift`) {
6755
+ setKey = 260;
6756
+ }
6732
6757
 
6733
6758
  // 全角切替、BackSpace、Deleteキー、Escキーは割り当て禁止
6734
6759
  // また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
@@ -8381,11 +8406,12 @@ const pushColors = (_header, _frame, _val, _colorCd, _allFlg) => {
8381
8406
  const ctype = (targetj >= 10 ? `Hit` : `Normal`) + (targetj % 2 === 0 ? `` : `Bar`);
8382
8407
  const colorPos = Math.ceil((targetj % 10 - 1) / 2);
8383
8408
 
8384
- g_keyObj[`color${tkObj.keyCtrlPtn}`].filter(cpattern => colorPos === cpattern)
8385
- .forEach((cpattern, k) => {
8409
+ g_keyObj[`color${tkObj.keyCtrlPtn}`].forEach((cpattern, k) => {
8410
+ if (colorPos === cpattern) {
8386
8411
  initialize(baseHeader + ctype);
8387
8412
  pushColor(baseHeader + ctype, k + addAll);
8388
- });
8413
+ }
8414
+ });
8389
8415
  });
8390
8416
  }
8391
8417
 
@@ -8528,7 +8554,7 @@ const getArrowSettings = _ => {
8528
8554
  g_keyObj[`scrollDir${keyCtrlPtn}`][g_stateObj.scroll] : [...Array(keyNum)].fill(1));
8529
8555
 
8530
8556
  g_stateObj.autoAll = boolToSwitch(g_stateObj.autoPlay === C_FLG_ALL);
8531
- g_workObj.hitPosition = (g_stateObj.autoAll ? 0 : g_stateObj.hitPosition);
8557
+ g_workObj.hitPosition = (g_stateObj.autoAll === C_FLG_ON ? 0 : g_stateObj.hitPosition);
8532
8558
  changeSetColor();
8533
8559
 
8534
8560
  for (let j = 0; j < keyNum; j++) {
@@ -9097,9 +9123,11 @@ const mainInit = _ => {
9097
9123
  for (let j = 0; j < keyNum; j++) {
9098
9124
  matchKeys[j].filter((key, k) => _keyCode === key && !g_workObj.keyHitFlg[j][k] && !g_judgObj.lockFlgs[j])
9099
9125
  .forEach(() => {
9100
- g_judgObj.lockFlgs[j] = true;
9101
- judgeArrow(j);
9102
- g_judgObj.lockFlgs[j] = false;
9126
+ if (_keyCode !== `` || (_keyCode === `` && g_inputKeyBuffer.ShiftRight)) {
9127
+ g_judgObj.lockFlgs[j] = true;
9128
+ judgeArrow(j);
9129
+ g_judgObj.lockFlgs[j] = false;
9130
+ }
9103
9131
  });
9104
9132
  }
9105
9133
  },
@@ -9117,6 +9145,9 @@ const mainInit = _ => {
9117
9145
  }
9118
9146
 
9119
9147
  g_inputKeyBuffer[setCode] = true;
9148
+ if (evt.key === `Shift` && setCode === ``) {
9149
+ g_inputKeyBuffer.ShiftRight = true;
9150
+ }
9120
9151
  mainKeyDownActFunc[g_stateObj.autoAll](setCode);
9121
9152
 
9122
9153
  // 曲中リトライ、タイトルバック
@@ -9180,6 +9211,9 @@ const mainInit = _ => {
9180
9211
  document.onkeyup = evt => {
9181
9212
  const setCode = evt.code;
9182
9213
  g_inputKeyBuffer[setCode] = false;
9214
+ if (evt.key === `Shift` && setCode === ``) {
9215
+ g_inputKeyBuffer.ShiftRight = false;
9216
+ }
9183
9217
  mainKeyUpActFunc[g_stateObj.autoAll]();
9184
9218
  };
9185
9219
 
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2023/10/01 (v34.2.0)
8
+ * Revised : 2023/10/29 (v34.4.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -112,7 +112,7 @@ const g_limitObj = {
112
112
  titleSiz: 32,
113
113
  mainSiz: 14,
114
114
  musicTitleSiz: 13,
115
- keySetSiz: 16,
115
+ keySetSiz: 15,
116
116
  };
117
117
 
118
118
  /** 設定項目の位置 */
@@ -1234,6 +1234,8 @@ g_kCd[240] = `CapsLk`;
1234
1234
  g_kCd[256] = `R)Shift`;
1235
1235
  g_kCd[257] = `R)Ctrl`;
1236
1236
  g_kCd[258] = `R)Alt`;
1237
+ g_kCd[259] = `Window`;
1238
+ g_kCd[260] = `R-Shift`;
1237
1239
 
1238
1240
  // 従来のキーコードとの変換用
1239
1241
  g_kCdN[0] = `- - -`; // 無効値
@@ -1352,6 +1354,7 @@ g_kCdN[256] = `ShiftRight`;
1352
1354
  g_kCdN[257] = `ControlRight`;
1353
1355
  g_kCdN[258] = `AltRight`;
1354
1356
  g_kCdN[259] = `MetaRight`;
1357
+ g_kCdN[260] = ``;
1355
1358
 
1356
1359
  const g_kCdNameObj = {
1357
1360
  shiftLKey: `ShiftLeft`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "34.3.1",
3
+ "version": "34.4.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {