danoniplus 34.5.0 → 34.5.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 +23 -62
- package/package.json +1 -1
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 34.5.
|
|
12
|
-
const g_revisedDate = `2023/
|
|
11
|
+
const g_version = `Ver 34.5.2`;
|
|
12
|
+
const g_revisedDate = `2023/12/02`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -515,13 +515,14 @@ const nextPos = (_basePos, _num, _length) => (_basePos + _num + _length) % _leng
|
|
|
515
515
|
|
|
516
516
|
/**
|
|
517
517
|
* 特定キーコードを置換する処理
|
|
518
|
-
* @param {
|
|
518
|
+
* @param {object} _evt
|
|
519
519
|
*/
|
|
520
|
-
const transCode =
|
|
521
|
-
|
|
522
|
-
|
|
520
|
+
const transCode = _evt => {
|
|
521
|
+
const evtCode = _evt.code;
|
|
522
|
+
if (evtCode === `` && _evt.key === `Shift`) {
|
|
523
|
+
return `ShiftRight`;
|
|
523
524
|
}
|
|
524
|
-
return
|
|
525
|
+
return evtCode;
|
|
525
526
|
};
|
|
526
527
|
|
|
527
528
|
/**
|
|
@@ -535,21 +536,6 @@ const blockCode = _setCode => !C_BLOCK_KEYS.includes(_setCode);
|
|
|
535
536
|
/* ショートカット制御 */
|
|
536
537
|
/*-----------------------------------------------------------*/
|
|
537
538
|
|
|
538
|
-
/**
|
|
539
|
-
* キーを押した状態を格納
|
|
540
|
-
* (KeyboardEvent.codeが空のときは、別キーとして扱う)
|
|
541
|
-
* @param {object} _evt
|
|
542
|
-
* @param {boolean} _keyHitFlg
|
|
543
|
-
*/
|
|
544
|
-
const switchKeyHit = (_evt, _keyHitFlg = false) => {
|
|
545
|
-
if (_evt.code === ``) {
|
|
546
|
-
g_inputKeyBuffer[''] = false;
|
|
547
|
-
g_inputKeyBuffer[_evt.key === `Shift` ? g_kCdNameObj.shiftRKey : g_kCdNameObj.unknownKey] = _keyHitFlg;
|
|
548
|
-
} else {
|
|
549
|
-
g_inputKeyBuffer[_evt.code] = _keyHitFlg;
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
|
|
553
539
|
/**
|
|
554
540
|
* キーを押したときの動作(汎用)
|
|
555
541
|
* @param {object} _evt
|
|
@@ -561,11 +547,11 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
561
547
|
if (!_dfEvtFlg) {
|
|
562
548
|
_evt.preventDefault();
|
|
563
549
|
}
|
|
564
|
-
const setCode = _evt
|
|
550
|
+
const setCode = transCode(_evt);
|
|
565
551
|
if (_evt.repeat && (g_unrepeatObj.page.includes(_displayName) || g_unrepeatObj.key.includes(setCode))) {
|
|
566
552
|
return blockCode(setCode);
|
|
567
553
|
}
|
|
568
|
-
|
|
554
|
+
g_inputKeyBuffer[setCode] = true;
|
|
569
555
|
|
|
570
556
|
// 対象ボタンを検索
|
|
571
557
|
const scLists = Object.keys(g_shortcutObj[_displayName])
|
|
@@ -573,7 +559,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
573
559
|
if (scLists.length > 0) {
|
|
574
560
|
// リンク先にジャンプする場合はonkeyUpイベントが動かないため、事前にキー状態をリセット
|
|
575
561
|
if (g_shortcutObj[_displayName][scLists[0]].reset) {
|
|
576
|
-
|
|
562
|
+
g_inputKeyBuffer[setCode] = false;
|
|
577
563
|
}
|
|
578
564
|
// 対象ボタン処理を実行
|
|
579
565
|
const targetId = document.getElementById(g_shortcutObj[_displayName][scLists[0]].id);
|
|
@@ -582,7 +568,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
582
568
|
}
|
|
583
569
|
return blockCode(setCode);
|
|
584
570
|
}
|
|
585
|
-
_func(setCode
|
|
571
|
+
_func(setCode);
|
|
586
572
|
return blockCode(setCode);
|
|
587
573
|
};
|
|
588
574
|
|
|
@@ -593,7 +579,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
593
579
|
const commonKeyUp = _evt => {
|
|
594
580
|
g_inputKeyBuffer[g_kCdNameObj.metaLKey] = false;
|
|
595
581
|
g_inputKeyBuffer[g_kCdNameObj.metaRKey] = false;
|
|
596
|
-
|
|
582
|
+
g_inputKeyBuffer[transCode(_evt)] = false;
|
|
597
583
|
};
|
|
598
584
|
|
|
599
585
|
/**
|
|
@@ -1386,7 +1372,7 @@ const resetKeyControl = _ => {
|
|
|
1386
1372
|
document.onkeyup = _ => { };
|
|
1387
1373
|
document.onkeydown = evt => {
|
|
1388
1374
|
evt.preventDefault();
|
|
1389
|
-
return blockCode(evt
|
|
1375
|
+
return blockCode(transCode(evt));
|
|
1390
1376
|
};
|
|
1391
1377
|
g_inputKeyBuffer = {};
|
|
1392
1378
|
};
|
|
@@ -3892,18 +3878,6 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3892
3878
|
// キーコンフィグ (keyCtrlX_Y)
|
|
3893
3879
|
g_keyObj.minPatterns = newKeyMultiParam(newKey, `keyCtrl`, toKeyCtrlArray, {
|
|
3894
3880
|
errCd: `E_0104`, baseCopyFlg: true,
|
|
3895
|
-
loopFunc: (k, keyheader) => {
|
|
3896
|
-
const addShiftRKey = (_pattern = ``) => {
|
|
3897
|
-
const keyCtrls = g_keyObj[`${keyheader}_${k + dfPtnNum}${_pattern}`];
|
|
3898
|
-
for (let j = 0; j < keyCtrls.length; j++) {
|
|
3899
|
-
if (keyCtrls[j].includes(g_kCdObj.shiftRkey) && !keyCtrls[j].includes(g_kCdObj.shiftRAltKey)) {
|
|
3900
|
-
keyCtrls[j].push(g_kCdObj.shiftRAltKey);
|
|
3901
|
-
}
|
|
3902
|
-
}
|
|
3903
|
-
};
|
|
3904
|
-
addShiftRKey();
|
|
3905
|
-
addShiftRKey(`d`);
|
|
3906
|
-
},
|
|
3907
3881
|
});
|
|
3908
3882
|
|
|
3909
3883
|
// 読込変数の接頭辞 (charaX_Y)
|
|
@@ -6752,15 +6726,10 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6752
6726
|
);
|
|
6753
6727
|
|
|
6754
6728
|
// キーボード押下時処理
|
|
6755
|
-
setShortcutEvent(g_currentPage, (kbCode
|
|
6729
|
+
setShortcutEvent(g_currentPage, (kbCode) => {
|
|
6756
6730
|
const keyCdObj = document.getElementById(`keycon${g_currentj}_${g_currentk}`);
|
|
6757
6731
|
let setKey = g_kCdN.findIndex(kCd => kCd === kbCode);
|
|
6758
6732
|
|
|
6759
|
-
// 右シフトキー対応
|
|
6760
|
-
if (setKey === g_kCdObj.unknown && kbKey === `Shift`) {
|
|
6761
|
-
setKey = g_kCdObj.shiftRAltKey;
|
|
6762
|
-
}
|
|
6763
|
-
|
|
6764
6733
|
// 全角切替、BackSpace、Deleteキー、Escキーは割り当て禁止
|
|
6765
6734
|
// また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
|
|
6766
6735
|
const disabledKeys = [240, 242, 243, 244, 91, 29, 28, 27, 259, g_prevKey];
|
|
@@ -7881,7 +7850,7 @@ const getFirstArrowFrame = (_dataObj, _keyCtrlPtn = `${g_keyObj.currentKey}_${g_
|
|
|
7881
7850
|
* @param {number} _scoreId
|
|
7882
7851
|
*/
|
|
7883
7852
|
const getStartFrame = (_lastFrame, _fadein = 0, _scoreId = g_stateObj.scoreId) => {
|
|
7884
|
-
let frameNum =
|
|
7853
|
+
let frameNum = setIntVal(g_headerObj.startFrame?.[_scoreId], setIntVal(g_headerObj.startFrame?.[0], 0));
|
|
7885
7854
|
if (_lastFrame >= frameNum) {
|
|
7886
7855
|
frameNum = Math.round(_fadein / 100 * (_lastFrame - frameNum)) + frameNum;
|
|
7887
7856
|
}
|
|
@@ -8502,13 +8471,6 @@ const getArrowSettings = _ => {
|
|
|
8502
8471
|
for (let j = 0; j < g_workObj.keyCtrl.length; j++) {
|
|
8503
8472
|
for (let k = 0; k < g_workObj.keyCtrl[j].length; k++) {
|
|
8504
8473
|
g_workObj.keyCtrlN[j][k] = g_kCdN[g_workObj.keyCtrl[j][k]];
|
|
8505
|
-
|
|
8506
|
-
// 内部のキーコードにより、KeyboardEvent.codeの値を切り替え
|
|
8507
|
-
if (g_workObj.keyCtrl[j][k] === g_kCdObj.unknown) {
|
|
8508
|
-
g_workObj.keyCtrlN[j][k] = g_kCdNameObj.unknownKey;
|
|
8509
|
-
} else if (g_workObj.keyCtrl[j][k] === g_kCdObj.shiftRAltKey) {
|
|
8510
|
-
g_workObj.keyCtrlN[j][k] = g_kCdNameObj.shiftRKey;
|
|
8511
|
-
}
|
|
8512
8474
|
g_workObj.keyHitFlg[j][k] = false;
|
|
8513
8475
|
}
|
|
8514
8476
|
}
|
|
@@ -9094,12 +9056,11 @@ const mainInit = _ => {
|
|
|
9094
9056
|
*/
|
|
9095
9057
|
const mainKeyDownActFunc = {
|
|
9096
9058
|
|
|
9097
|
-
OFF: (_code
|
|
9098
|
-
const convCode = _code || (_key === `Shift` ? g_kCdNameObj.shiftRKey : g_kCdNameObj.unknownKey);
|
|
9059
|
+
OFF: (_code) => {
|
|
9099
9060
|
const matchKeys = g_workObj.keyCtrlN;
|
|
9100
9061
|
|
|
9101
9062
|
for (let j = 0; j < keyNum; j++) {
|
|
9102
|
-
matchKeys[j].filter((key, k) =>
|
|
9063
|
+
matchKeys[j].filter((key, k) => _code === key && !g_workObj.keyHitFlg[j][k] && !g_judgObj.lockFlgs[j])
|
|
9103
9064
|
.forEach(() => {
|
|
9104
9065
|
g_judgObj.lockFlgs[j] = true;
|
|
9105
9066
|
judgeArrow(j);
|
|
@@ -9108,19 +9069,19 @@ const mainInit = _ => {
|
|
|
9108
9069
|
}
|
|
9109
9070
|
},
|
|
9110
9071
|
|
|
9111
|
-
ON: (
|
|
9072
|
+
ON: (_code) => { },
|
|
9112
9073
|
};
|
|
9113
9074
|
|
|
9114
9075
|
// キー操作イベント
|
|
9115
9076
|
document.onkeydown = evt => {
|
|
9116
9077
|
evt.preventDefault();
|
|
9117
|
-
const setCode = evt
|
|
9078
|
+
const setCode = transCode(evt);
|
|
9118
9079
|
|
|
9119
9080
|
if (evt.repeat && !g_mainRepeatObj.key.includes(setCode)) {
|
|
9120
9081
|
return blockCode(setCode);
|
|
9121
9082
|
}
|
|
9122
|
-
|
|
9123
|
-
mainKeyDownActFunc[g_stateObj.autoAll](setCode
|
|
9083
|
+
g_inputKeyBuffer[setCode] = true;
|
|
9084
|
+
mainKeyDownActFunc[g_stateObj.autoAll](setCode);
|
|
9124
9085
|
|
|
9125
9086
|
// 曲中リトライ、タイトルバック
|
|
9126
9087
|
if (setCode === g_kCdN[g_headerObj.keyRetry]) {
|
|
@@ -9181,7 +9142,7 @@ const mainInit = _ => {
|
|
|
9181
9142
|
};
|
|
9182
9143
|
|
|
9183
9144
|
document.onkeyup = evt => {
|
|
9184
|
-
|
|
9145
|
+
g_inputKeyBuffer[transCode(evt)] = false;
|
|
9185
9146
|
mainKeyUpActFunc[g_stateObj.autoAll]();
|
|
9186
9147
|
};
|
|
9187
9148
|
|