danoniplus 34.3.2 → 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 +62 -21
- package/js/lib/danoni_constants.js +12 -2
- package/package.json +1 -1
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/
|
|
7
|
+
* Revised : 2023/10/31
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 34.
|
|
12
|
-
const g_revisedDate = `2023/10/
|
|
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,7 +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
|
-
|
|
569
|
+
switchKeyHit(_evt, true);
|
|
555
570
|
|
|
556
571
|
// 対象ボタンを検索
|
|
557
572
|
const scLists = Object.keys(g_shortcutObj[_displayName]).filter(keys => {
|
|
@@ -562,7 +577,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
562
577
|
if (scLists.length > 0) {
|
|
563
578
|
// リンク先にジャンプする場合はonkeyUpイベントが動かないため、事前にキー状態をリセット
|
|
564
579
|
if (g_shortcutObj[_displayName][scLists[0]].reset) {
|
|
565
|
-
|
|
580
|
+
switchKeyHit(_evt);
|
|
566
581
|
}
|
|
567
582
|
// 対象ボタン処理を実行
|
|
568
583
|
const targetId = document.getElementById(g_shortcutObj[_displayName][scLists[0]].id);
|
|
@@ -571,7 +586,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
571
586
|
}
|
|
572
587
|
return blockCode(setCode);
|
|
573
588
|
}
|
|
574
|
-
_func(setCode);
|
|
589
|
+
_func(setCode, _evt.key);
|
|
575
590
|
return blockCode(setCode);
|
|
576
591
|
};
|
|
577
592
|
|
|
@@ -3890,7 +3905,21 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3890
3905
|
g_keyObj[`minWidth${newKey}`] = _dosObj[`minWidth${newKey}`] ?? g_keyObj[`minWidth${newKey}`] ?? g_keyObj.minWidthDefault;
|
|
3891
3906
|
|
|
3892
3907
|
// キーコンフィグ (keyCtrlX_Y)
|
|
3893
|
-
g_keyObj.minPatterns = newKeyMultiParam(newKey, `keyCtrl`, toKeyCtrlArray, {
|
|
3908
|
+
g_keyObj.minPatterns = newKeyMultiParam(newKey, `keyCtrl`, toKeyCtrlArray, {
|
|
3909
|
+
errCd: `E_0104`, baseCopyFlg: true,
|
|
3910
|
+
loopFunc: (k, keyheader) => {
|
|
3911
|
+
const addShiftRKey = (_pattern = ``) => {
|
|
3912
|
+
const keyCtrls = g_keyObj[`${keyheader}_${k + dfPtnNum}${_pattern}`];
|
|
3913
|
+
for (let j = 0; j < keyCtrls.length; j++) {
|
|
3914
|
+
if (keyCtrls[j].includes(g_kCdObj.shiftRkey) && !keyCtrls[j].includes(g_kCdObj.shiftRAltKey)) {
|
|
3915
|
+
keyCtrls[j].push(g_kCdObj.shiftRAltKey);
|
|
3916
|
+
}
|
|
3917
|
+
}
|
|
3918
|
+
};
|
|
3919
|
+
addShiftRKey();
|
|
3920
|
+
addShiftRKey(`d`);
|
|
3921
|
+
},
|
|
3922
|
+
});
|
|
3894
3923
|
|
|
3895
3924
|
// 読込変数の接頭辞 (charaX_Y)
|
|
3896
3925
|
newKeyMultiParam(newKey, `chara`, toString);
|
|
@@ -6216,8 +6245,8 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6216
6245
|
g_keycons.cursorNum = g_keycons.cursorNumList.findIndex(val => val === g_currentj);
|
|
6217
6246
|
setKeyConfigCursor();
|
|
6218
6247
|
}, {
|
|
6219
|
-
x: keyconX, y: 50 + C_KYC_REPHEIGHT * k + keyconY,
|
|
6220
|
-
w: C_ARW_WIDTH, h: C_KYC_REPHEIGHT, siz: g_limitObj.keySetSiz,
|
|
6248
|
+
x: keyconX - 5, y: 50 + C_KYC_REPHEIGHT * k + keyconY,
|
|
6249
|
+
w: C_ARW_WIDTH + 10, h: C_KYC_REPHEIGHT, siz: g_limitObj.keySetSiz,
|
|
6221
6250
|
}, g_cssObj.button_Default_NoColor, g_cssObj.title_base)
|
|
6222
6251
|
);
|
|
6223
6252
|
|
|
@@ -6726,9 +6755,14 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6726
6755
|
);
|
|
6727
6756
|
|
|
6728
6757
|
// キーボード押下時処理
|
|
6729
|
-
setShortcutEvent(g_currentPage,
|
|
6758
|
+
setShortcutEvent(g_currentPage, (kbCode, kbKey) => {
|
|
6730
6759
|
const keyCdObj = document.querySelector(`#keycon${g_currentj}_${g_currentk}`);
|
|
6731
|
-
let setKey = g_kCdN.findIndex(kCd => kCd ===
|
|
6760
|
+
let setKey = g_kCdN.findIndex(kCd => kCd === kbCode);
|
|
6761
|
+
|
|
6762
|
+
// 右シフトキー対応
|
|
6763
|
+
if (setKey === g_kCdObj.unknown && kbKey === `Shift`) {
|
|
6764
|
+
setKey = g_kCdObj.shiftRAltKey;
|
|
6765
|
+
}
|
|
6732
6766
|
|
|
6733
6767
|
// 全角切替、BackSpace、Deleteキー、Escキーは割り当て禁止
|
|
6734
6768
|
// また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
|
|
@@ -8381,11 +8415,12 @@ const pushColors = (_header, _frame, _val, _colorCd, _allFlg) => {
|
|
|
8381
8415
|
const ctype = (targetj >= 10 ? `Hit` : `Normal`) + (targetj % 2 === 0 ? `` : `Bar`);
|
|
8382
8416
|
const colorPos = Math.ceil((targetj % 10 - 1) / 2);
|
|
8383
8417
|
|
|
8384
|
-
g_keyObj[`color${tkObj.keyCtrlPtn}`].
|
|
8385
|
-
|
|
8418
|
+
g_keyObj[`color${tkObj.keyCtrlPtn}`].forEach((cpattern, k) => {
|
|
8419
|
+
if (colorPos === cpattern) {
|
|
8386
8420
|
initialize(baseHeader + ctype);
|
|
8387
8421
|
pushColor(baseHeader + ctype, k + addAll);
|
|
8388
|
-
}
|
|
8422
|
+
}
|
|
8423
|
+
});
|
|
8389
8424
|
});
|
|
8390
8425
|
}
|
|
8391
8426
|
|
|
@@ -8501,6 +8536,13 @@ const getArrowSettings = _ => {
|
|
|
8501
8536
|
for (let j = 0; j < g_workObj.keyCtrl.length; j++) {
|
|
8502
8537
|
for (let k = 0; k < g_workObj.keyCtrl[j].length; k++) {
|
|
8503
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
|
+
}
|
|
8504
8546
|
g_workObj.keyHitFlg[j][k] = false;
|
|
8505
8547
|
}
|
|
8506
8548
|
}
|
|
@@ -9091,11 +9133,12 @@ const mainInit = _ => {
|
|
|
9091
9133
|
*/
|
|
9092
9134
|
const mainKeyDownActFunc = {
|
|
9093
9135
|
|
|
9094
|
-
OFF: (
|
|
9136
|
+
OFF: (_code, _key) => {
|
|
9137
|
+
const convCode = (_code === `` ? (_key === `Shift` ? g_kCdNameObj.shiftRKey : g_kCdNameObj.unknownKey) : _code);
|
|
9095
9138
|
const matchKeys = g_workObj.keyCtrlN;
|
|
9096
9139
|
|
|
9097
9140
|
for (let j = 0; j < keyNum; j++) {
|
|
9098
|
-
matchKeys[j].filter((key, k) =>
|
|
9141
|
+
matchKeys[j].filter((key, k) => convCode === key && !g_workObj.keyHitFlg[j][k] && !g_judgObj.lockFlgs[j])
|
|
9099
9142
|
.forEach(() => {
|
|
9100
9143
|
g_judgObj.lockFlgs[j] = true;
|
|
9101
9144
|
judgeArrow(j);
|
|
@@ -9115,9 +9158,8 @@ const mainInit = _ => {
|
|
|
9115
9158
|
if (evt.repeat && !g_mainRepeatObj.key.includes(setCode)) {
|
|
9116
9159
|
return blockCode(setCode);
|
|
9117
9160
|
}
|
|
9118
|
-
|
|
9119
|
-
|
|
9120
|
-
mainKeyDownActFunc[g_stateObj.autoAll](setCode);
|
|
9161
|
+
switchKeyHit(evt, true);
|
|
9162
|
+
mainKeyDownActFunc[g_stateObj.autoAll](setCode, evt.key);
|
|
9121
9163
|
|
|
9122
9164
|
// 曲中リトライ、タイトルバック
|
|
9123
9165
|
if (setCode === g_kCdN[g_headerObj.keyRetry]) {
|
|
@@ -9178,8 +9220,7 @@ const mainInit = _ => {
|
|
|
9178
9220
|
};
|
|
9179
9221
|
|
|
9180
9222
|
document.onkeyup = evt => {
|
|
9181
|
-
|
|
9182
|
-
g_inputKeyBuffer[setCode] = false;
|
|
9223
|
+
switchKeyHit(evt);
|
|
9183
9224
|
mainKeyUpActFunc[g_stateObj.autoAll]();
|
|
9184
9225
|
};
|
|
9185
9226
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2023/10/
|
|
8
|
+
* Revised : 2023/10/31 (v34.4.1)
|
|
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:
|
|
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,12 +1354,20 @@ 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`,
|
|
1358
1361
|
shiftRKey: `ShiftRight`,
|
|
1359
1362
|
metaLKey: `MetaLeft`,
|
|
1360
1363
|
metaRKey: `MetaRight`,
|
|
1364
|
+
unknownKey: `Unknown`,
|
|
1365
|
+
};
|
|
1366
|
+
|
|
1367
|
+
const g_kCdObj = {
|
|
1368
|
+
unknown: 1,
|
|
1369
|
+
shiftRkey: 256,
|
|
1370
|
+
shiftRAltKey: 260,
|
|
1361
1371
|
};
|
|
1362
1372
|
|
|
1363
1373
|
// 画面別ショートカット
|