danoniplus 34.4.0 → 34.4.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/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/29
7
+ * Revised : 2023/10/31
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 34.4.0`;
12
- const g_revisedDate = `2023/10/29`;
11
+ const g_version = `Ver 34.4.1`;
12
+ const g_revisedDate = `2023/10/31`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -536,6 +536,21 @@ const blockCode = _setCode => !C_BLOCK_KEYS.includes(_setCode);
536
536
  /* ショートカット制御 */
537
537
  /*-----------------------------------------------------------*/
538
538
 
539
+ /**
540
+ * キーを押した状態を格納
541
+ * (KeyboardEvent.codeが空のときは、別キーとして扱う)
542
+ * @param {object} _evt
543
+ * @param {boolean} _keyHitFlg
544
+ */
545
+ const switchKeyHit = (_evt, _keyHitFlg = false) => {
546
+ if (_evt.code === ``) {
547
+ g_inputKeyBuffer[''] = false;
548
+ g_inputKeyBuffer[_evt.key === `Shift` ? g_kCdNameObj.shiftRKey : g_kCdNameObj.unknownKey] = _keyHitFlg;
549
+ } else {
550
+ g_inputKeyBuffer[_evt.code] = _keyHitFlg;
551
+ }
552
+ }
553
+
539
554
  /**
540
555
  * キーを押したときの動作(汎用)
541
556
  * @param {object} _evt
@@ -551,10 +566,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
551
566
  if (_evt.repeat && (g_unrepeatObj.page.includes(_displayName) || g_unrepeatObj.key.includes(setCode))) {
552
567
  return blockCode(setCode);
553
568
  }
554
- g_inputKeyBuffer[setCode] = true;
555
- if (_evt.key === `Shift` && setCode === ``) {
556
- g_inputKeyBuffer.ShiftRight = true;
557
- }
569
+ switchKeyHit(_evt, true);
558
570
 
559
571
  // 対象ボタンを検索
560
572
  const scLists = Object.keys(g_shortcutObj[_displayName]).filter(keys => {
@@ -565,10 +577,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
565
577
  if (scLists.length > 0) {
566
578
  // リンク先にジャンプする場合はonkeyUpイベントが動かないため、事前にキー状態をリセット
567
579
  if (g_shortcutObj[_displayName][scLists[0]].reset) {
568
- g_inputKeyBuffer[setCode] = false;
569
- if (_evt.key === `Shift` && setCode === ``) {
570
- g_inputKeyBuffer.ShiftRight = false;
571
- }
580
+ switchKeyHit(_evt);
572
581
  }
573
582
  // 対象ボタン処理を実行
574
583
  const targetId = document.getElementById(g_shortcutObj[_displayName][scLists[0]].id);
@@ -3900,10 +3909,10 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
3900
3909
  errCd: `E_0104`, baseCopyFlg: true,
3901
3910
  loopFunc: (k, keyheader) => {
3902
3911
  const addShiftRKey = (_pattern = ``) => {
3903
- const keyCtrls = g_keyObj[`${keyheader}_${k + g_keyObj.dfPtnNum}${_pattern}`];
3912
+ const keyCtrls = g_keyObj[`${keyheader}_${k + dfPtnNum}${_pattern}`];
3904
3913
  for (let j = 0; j < keyCtrls.length; j++) {
3905
- if (keyCtrls[j].includes(256) && !keyCtrls[j].includes(260)) {
3906
- keyCtrls[j].push(260);
3914
+ if (keyCtrls[j].includes(g_kCdObj.shiftRkey) && !keyCtrls[j].includes(g_kCdObj.shiftRAltKey)) {
3915
+ keyCtrls[j].push(g_kCdObj.shiftRAltKey);
3907
3916
  }
3908
3917
  }
3909
3918
  };
@@ -6751,8 +6760,8 @@ const keyConfigInit = (_kcType = g_kcType) => {
6751
6760
  let setKey = g_kCdN.findIndex(kCd => kCd === kbCode);
6752
6761
 
6753
6762
  // 右シフトキー対応
6754
- if (setKey === 1 && kbKey === `Shift`) {
6755
- setKey = 260;
6763
+ if (setKey === g_kCdObj.unknown && kbKey === `Shift`) {
6764
+ setKey = g_kCdObj.shiftRAltKey;
6756
6765
  }
6757
6766
 
6758
6767
  // 全角切替、BackSpace、Deleteキー、Escキーは割り当て禁止
@@ -8527,6 +8536,13 @@ const getArrowSettings = _ => {
8527
8536
  for (let j = 0; j < g_workObj.keyCtrl.length; j++) {
8528
8537
  for (let k = 0; k < g_workObj.keyCtrl[j].length; k++) {
8529
8538
  g_workObj.keyCtrlN[j][k] = g_kCdN[g_workObj.keyCtrl[j][k]];
8539
+
8540
+ // 内部のキーコードにより、KeyboardEvent.codeの値を切り替え
8541
+ if (g_workObj.keyCtrl[j][k] === g_kCdObj.unknown) {
8542
+ g_workObj.keyCtrlN[j][k] = g_kCdNameObj.unknownKey;
8543
+ } else if (g_workObj.keyCtrl[j][k] === g_kCdObj.shiftRAltKey) {
8544
+ g_workObj.keyCtrlN[j][k] = g_kCdNameObj.shiftRKey;
8545
+ }
8530
8546
  g_workObj.keyHitFlg[j][k] = false;
8531
8547
  }
8532
8548
  }
@@ -9117,17 +9133,16 @@ const mainInit = _ => {
9117
9133
  */
9118
9134
  const mainKeyDownActFunc = {
9119
9135
 
9120
- OFF: (_keyCode) => {
9136
+ OFF: (_code, _key) => {
9137
+ const convCode = (_code === `` ? (_key === `Shift` ? g_kCdNameObj.shiftRKey : g_kCdNameObj.unknownKey) : _code);
9121
9138
  const matchKeys = g_workObj.keyCtrlN;
9122
9139
 
9123
9140
  for (let j = 0; j < keyNum; j++) {
9124
- matchKeys[j].filter((key, k) => _keyCode === key && !g_workObj.keyHitFlg[j][k] && !g_judgObj.lockFlgs[j])
9141
+ matchKeys[j].filter((key, k) => convCode === key && !g_workObj.keyHitFlg[j][k] && !g_judgObj.lockFlgs[j])
9125
9142
  .forEach(() => {
9126
- if (_keyCode !== `` || (_keyCode === `` && g_inputKeyBuffer.ShiftRight)) {
9127
- g_judgObj.lockFlgs[j] = true;
9128
- judgeArrow(j);
9129
- g_judgObj.lockFlgs[j] = false;
9130
- }
9143
+ g_judgObj.lockFlgs[j] = true;
9144
+ judgeArrow(j);
9145
+ g_judgObj.lockFlgs[j] = false;
9131
9146
  });
9132
9147
  }
9133
9148
  },
@@ -9143,12 +9158,8 @@ const mainInit = _ => {
9143
9158
  if (evt.repeat && !g_mainRepeatObj.key.includes(setCode)) {
9144
9159
  return blockCode(setCode);
9145
9160
  }
9146
-
9147
- g_inputKeyBuffer[setCode] = true;
9148
- if (evt.key === `Shift` && setCode === ``) {
9149
- g_inputKeyBuffer.ShiftRight = true;
9150
- }
9151
- mainKeyDownActFunc[g_stateObj.autoAll](setCode);
9161
+ switchKeyHit(evt, true);
9162
+ mainKeyDownActFunc[g_stateObj.autoAll](setCode, evt.key);
9152
9163
 
9153
9164
  // 曲中リトライ、タイトルバック
9154
9165
  if (setCode === g_kCdN[g_headerObj.keyRetry]) {
@@ -9209,11 +9220,7 @@ const mainInit = _ => {
9209
9220
  };
9210
9221
 
9211
9222
  document.onkeyup = evt => {
9212
- const setCode = evt.code;
9213
- g_inputKeyBuffer[setCode] = false;
9214
- if (evt.key === `Shift` && setCode === ``) {
9215
- g_inputKeyBuffer.ShiftRight = false;
9216
- }
9223
+ switchKeyHit(evt);
9217
9224
  mainKeyUpActFunc[g_stateObj.autoAll]();
9218
9225
  };
9219
9226
 
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2023/10/29 (v34.4.0)
8
+ * Revised : 2023/10/31 (v34.4.1)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -1361,6 +1361,13 @@ const g_kCdNameObj = {
1361
1361
  shiftRKey: `ShiftRight`,
1362
1362
  metaLKey: `MetaLeft`,
1363
1363
  metaRKey: `MetaRight`,
1364
+ unknownKey: `Unknown`,
1365
+ };
1366
+
1367
+ const g_kCdObj = {
1368
+ unknown: 1,
1369
+ shiftRkey: 256,
1370
+ shiftRAltKey: 260,
1364
1371
  };
1365
1372
 
1366
1373
  // 画面別ショートカット
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "34.4.0",
3
+ "version": "34.4.1",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {