danoniplus 31.7.1 → 32.1.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 +63 -34
- package/js/lib/danoni_constants.js +63 -8
- package/package.json +1 -1
package/js/danoni_main.js
CHANGED
|
@@ -4,13 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Source by tickle
|
|
6
6
|
* Created : 2018/10/08
|
|
7
|
-
* Revised : 2023/05/
|
|
7
|
+
* Revised : 2023/05/07
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver
|
|
12
|
-
const g_revisedDate = `2023/05/
|
|
13
|
-
const g_alphaVersion = ``;
|
|
11
|
+
const g_version = `Ver 32.1.0`;
|
|
12
|
+
const g_revisedDate = `2023/05/13`;
|
|
14
13
|
|
|
15
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
16
15
|
let g_localVersion = ``;
|
|
@@ -121,6 +120,10 @@ const g_presetObj = {
|
|
|
121
120
|
let g_headerObj = {};
|
|
122
121
|
let g_scoreObj = {};
|
|
123
122
|
let g_attrObj = {};
|
|
123
|
+
|
|
124
|
+
const g_btnFunc = {
|
|
125
|
+
base: {}, reset: {}, cxt: {},
|
|
126
|
+
};
|
|
124
127
|
let g_btnAddFunc = {};
|
|
125
128
|
let g_btnDeleteFlg = {};
|
|
126
129
|
let g_cxtAddFunc = {};
|
|
@@ -543,7 +546,7 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
543
546
|
if (!_dfEvtFlg) {
|
|
544
547
|
_evt.preventDefault();
|
|
545
548
|
}
|
|
546
|
-
const setCode =
|
|
549
|
+
const setCode = _evt.code;
|
|
547
550
|
if (_evt.repeat && (g_unrepeatObj.page.includes(_displayName) || g_unrepeatObj.key.includes(setCode))) {
|
|
548
551
|
return blockCode(setCode);
|
|
549
552
|
}
|
|
@@ -576,8 +579,9 @@ const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
|
576
579
|
* @param {object} _evt
|
|
577
580
|
*/
|
|
578
581
|
const commonKeyUp = _evt => {
|
|
579
|
-
g_inputKeyBuffer[g_kCdNameObj.
|
|
580
|
-
g_inputKeyBuffer[
|
|
582
|
+
g_inputKeyBuffer[g_kCdNameObj.metaLKey] = false;
|
|
583
|
+
g_inputKeyBuffer[g_kCdNameObj.metaRKey] = false;
|
|
584
|
+
g_inputKeyBuffer[_evt.code] = false;
|
|
581
585
|
};
|
|
582
586
|
|
|
583
587
|
/**
|
|
@@ -1268,6 +1272,8 @@ const createCss2Button = (_id, _text, _func = _ => true, { x = 0, y = g_sHeight
|
|
|
1268
1272
|
resetFunc(evt);
|
|
1269
1273
|
}
|
|
1270
1274
|
});
|
|
1275
|
+
g_btnFunc.base[_id] = _func;
|
|
1276
|
+
g_btnFunc.reset[_id] = resetFunc;
|
|
1271
1277
|
|
|
1272
1278
|
// 右クリック時の処理
|
|
1273
1279
|
div.oncontextmenu = evt => {
|
|
@@ -1278,6 +1284,8 @@ const createCss2Button = (_id, _text, _func = _ => true, { x = 0, y = g_sHeight
|
|
|
1278
1284
|
if (typeof g_cxtAddFunc[_id] === C_TYP_FUNCTION) {
|
|
1279
1285
|
g_cxtAddFunc[_id](evt, cxtFunc);
|
|
1280
1286
|
}
|
|
1287
|
+
g_btnFunc.cxt[_id] = cxtFunc;
|
|
1288
|
+
|
|
1281
1289
|
} else if (typeof g_cxtAddFunc[_id] === C_TYP_FUNCTION) {
|
|
1282
1290
|
g_cxtAddFunc[_id](evt);
|
|
1283
1291
|
}
|
|
@@ -1335,7 +1343,7 @@ const resetKeyControl = _ => {
|
|
|
1335
1343
|
document.onkeyup = _ => { };
|
|
1336
1344
|
document.onkeydown = evt => {
|
|
1337
1345
|
evt.preventDefault();
|
|
1338
|
-
return blockCode(
|
|
1346
|
+
return blockCode(evt.code);
|
|
1339
1347
|
};
|
|
1340
1348
|
g_inputKeyBuffer = {};
|
|
1341
1349
|
};
|
|
@@ -2848,10 +2856,12 @@ const headerConvert = _dosObj => {
|
|
|
2848
2856
|
// 無音のフレーム数
|
|
2849
2857
|
obj.blankFrame = 200;
|
|
2850
2858
|
obj.blankFrameDef = 200;
|
|
2859
|
+
obj.blankFrameDefs = [];
|
|
2851
2860
|
if (isNaN(parseFloat(_dosObj.blankFrame))) {
|
|
2852
2861
|
} else {
|
|
2853
|
-
obj.
|
|
2854
|
-
obj.
|
|
2862
|
+
obj.blankFrameDefs = _dosObj.blankFrame.split(`$`).map(val => parseInt(val));
|
|
2863
|
+
obj.blankFrame = obj.blankFrameDefs[0];
|
|
2864
|
+
obj.blankFrameDef = obj.blankFrameDefs[0];
|
|
2855
2865
|
}
|
|
2856
2866
|
|
|
2857
2867
|
// 開始フレーム数(0以外の場合はフェードインスタート)、終了フレーム数
|
|
@@ -3578,9 +3588,12 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3578
3588
|
if (existParam(tmpArray[k], `${keyheader}_${k + dfPtn}`)) {
|
|
3579
3589
|
continue;
|
|
3580
3590
|
}
|
|
3581
|
-
|
|
3582
|
-
g_keyObj[`${keyheader}_${k + dfPtn}`] =
|
|
3583
|
-
|
|
3591
|
+
// |keyCtrl9j=Tab,7_0,Enter| -> |keyCtrl9j=Tab,S,D,F,Space,J,K,L,Enter| のように補完
|
|
3592
|
+
g_keyObj[`${keyheader}_${k + dfPtn}`] =
|
|
3593
|
+
tmpArray[k].split(`,`).map(n =>
|
|
3594
|
+
g_keyObj[`${_name}${getKeyPtnName(n)}`] !== undefined ?
|
|
3595
|
+
structuredClone(g_keyObj[`${_name}${getKeyPtnName(n)}`]) : [_convFunc(n)]
|
|
3596
|
+
).flat();
|
|
3584
3597
|
if (baseCopyFlg) {
|
|
3585
3598
|
g_keyObj[`${keyheader}_${k + dfPtn}d`] = structuredClone(g_keyObj[`${keyheader}_${k + dfPtn}`]);
|
|
3586
3599
|
}
|
|
@@ -3618,7 +3631,8 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3618
3631
|
g_keyObj[`${keyheader}_${k + dfPtn}_${ptnCnt}`] = [...Array(g_keyObj[`${g_keyObj.defaultProp}${_key}_${k + dfPtn}`].length)].fill(0);
|
|
3619
3632
|
|
|
3620
3633
|
} else if (g_keyObj[`${_name}${keyPtn}_0`] !== undefined) {
|
|
3621
|
-
// 他のキーパターン (例: |shuffle8i=8_0| )
|
|
3634
|
+
// 他のキーパターン (例: |shuffle8i=8_0| ) を直接指定した場合、該当があれば既存パターンからコピー
|
|
3635
|
+
// 既存パターンが複数ある場合、全てコピーする
|
|
3622
3636
|
let m = 0;
|
|
3623
3637
|
while (g_keyObj[`${_name}${keyPtn}_${m}`] !== undefined) {
|
|
3624
3638
|
g_keyObj[`${keyheader}_${k + dfPtn}_${ptnCnt}`] = structuredClone(g_keyObj[`${_name}${keyPtn}_${m}`]);
|
|
@@ -3627,9 +3641,13 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3627
3641
|
}
|
|
3628
3642
|
} else {
|
|
3629
3643
|
// 通常の指定方法 (例: |shuffle8i=1,1,1,2,0,0,0,0/1,1,1,1,0,0,0,0| )の場合の取り込み
|
|
3644
|
+
// 部分的にキーパターン指定があった場合は既存パターンを展開 (例: |shuffle9j=2,7_0_0,2|)
|
|
3630
3645
|
g_keyObj[`${keyheader}_${k + dfPtn}_${ptnCnt}`] =
|
|
3631
|
-
makeBaseArray(list.split(`,`).map(n =>
|
|
3632
|
-
g_keyObj[`${
|
|
3646
|
+
makeBaseArray(list.split(`,`).map(n =>
|
|
3647
|
+
g_keyObj[`${_name}${getKeyPtnName(n)}`] !== undefined ?
|
|
3648
|
+
structuredClone(g_keyObj[`${_name}${getKeyPtnName(n)}`]) :
|
|
3649
|
+
[isNaN(parseInt(n)) ? n : parseInt(n, 10)]
|
|
3650
|
+
).flat(), g_keyObj[`${g_keyObj.defaultProp}${_key}_${k + dfPtn}`].length, 0);
|
|
3633
3651
|
ptnCnt++;
|
|
3634
3652
|
}
|
|
3635
3653
|
});
|
|
@@ -3651,14 +3669,19 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3651
3669
|
* @param {string} _key キー数
|
|
3652
3670
|
* @param {string} _name 名前
|
|
3653
3671
|
* @param {string} _type float, number, string, boolean
|
|
3672
|
+
* @param {string} _defaultVal
|
|
3654
3673
|
*/
|
|
3655
|
-
const newKeySingleParam = (_key, _name, _type) => {
|
|
3674
|
+
const newKeySingleParam = (_key, _name, _type, _defaultVal) => {
|
|
3656
3675
|
const keyheader = _name + _key;
|
|
3657
3676
|
const dfPtn = setIntVal(g_keyObj.dfPtnNum);
|
|
3658
3677
|
if (_dosObj[keyheader] !== undefined) {
|
|
3659
3678
|
const tmps = _dosObj[keyheader].split(`$`);
|
|
3660
3679
|
for (let k = 0; k < tmps.length; k++) {
|
|
3661
|
-
g_keyObj[`${keyheader}_${k + dfPtn}`] = setVal(g_keyObj[`${_name}${tmps[k]}`],
|
|
3680
|
+
g_keyObj[`${keyheader}_${k + dfPtn}`] = setVal(g_keyObj[`${_name}${getKeyPtnName(tmps[k])}`],
|
|
3681
|
+
tmps[k].indexOf(`_`) !== -1 ? _defaultVal : setVal(tmps[k], ``, _type));
|
|
3682
|
+
}
|
|
3683
|
+
for (let k = tmps.length; k < g_keyObj.minPatterns; k++) {
|
|
3684
|
+
g_keyObj[`${keyheader}_${k + dfPtn}`] = g_keyObj[`${keyheader}_0`];
|
|
3662
3685
|
}
|
|
3663
3686
|
}
|
|
3664
3687
|
};
|
|
@@ -3695,11 +3718,15 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3695
3718
|
// 他のキーパターン指定時、該当があればプロパティを全コピー
|
|
3696
3719
|
Object.assign(g_keyObj[pairName], g_keyObj[`${_pairName}${keyPtn}`]);
|
|
3697
3720
|
} else {
|
|
3698
|
-
// 通常の指定方法(例:|scroll8i=Cross::1,1,1
|
|
3721
|
+
// 通常の指定方法(例:|scroll8i=Cross::1,1,1,-,-,-,1,1/Split::1,1,1,1,-,-,-,-|)から取り込み
|
|
3722
|
+
// 部分的にキーパターン指定があった場合は既存パターンを展開 (例: |scroll9j=Cross::1,7_0,1|)
|
|
3699
3723
|
const tmpParamPair = pairs.split(`::`);
|
|
3700
3724
|
g_keyObj[pairName][tmpParamPair[0]] =
|
|
3701
|
-
makeBaseArray(tmpParamPair[1].split(`,`).map(n =>
|
|
3702
|
-
g_keyObj[`${
|
|
3725
|
+
makeBaseArray(tmpParamPair[1].split(`,`).map(n =>
|
|
3726
|
+
g_keyObj[`${_pairName}${getKeyPtnName(n)}`] !== undefined ?
|
|
3727
|
+
structuredClone(g_keyObj[`${_pairName}${getKeyPtnName(n)}`][tmpParamPair[0]]) :
|
|
3728
|
+
[n === `-` ? -1 : parseInt(n, 10)]
|
|
3729
|
+
).flat(), g_keyObj[`${g_keyObj.defaultProp}${_key}_${k + dfPtn}`].length, _defaultVal);
|
|
3703
3730
|
}
|
|
3704
3731
|
});
|
|
3705
3732
|
}
|
|
@@ -3770,19 +3797,19 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3770
3797
|
}
|
|
3771
3798
|
|
|
3772
3799
|
// ステップゾーン間隔 (blankX_Y)
|
|
3773
|
-
newKeySingleParam(newKey, `blank`, C_TYP_FLOAT);
|
|
3800
|
+
newKeySingleParam(newKey, `blank`, C_TYP_FLOAT, g_keyObj.blank_def);
|
|
3774
3801
|
|
|
3775
3802
|
// 矢印群の倍率 (scaleX_Y)
|
|
3776
|
-
newKeySingleParam(newKey, `scale`, C_TYP_FLOAT);
|
|
3803
|
+
newKeySingleParam(newKey, `scale`, C_TYP_FLOAT, g_keyObj.scale_def);
|
|
3777
3804
|
|
|
3778
3805
|
// プレイ中ショートカット:リトライ (keyRetryX_Y)
|
|
3779
|
-
newKeySingleParam(newKey, `keyRetry`, C_TYP_STRING);
|
|
3806
|
+
newKeySingleParam(newKey, `keyRetry`, C_TYP_STRING, C_KEY_RETRY);
|
|
3780
3807
|
|
|
3781
3808
|
// プレイ中ショートカット:タイトルバック (keyTitleBackX_Y)
|
|
3782
|
-
newKeySingleParam(newKey, `keyTitleBack`, C_TYP_STRING);
|
|
3809
|
+
newKeySingleParam(newKey, `keyTitleBack`, C_TYP_STRING, C_KEY_TITLEBACK);
|
|
3783
3810
|
|
|
3784
3811
|
// 別キーフラグ (transKeyX_Y)
|
|
3785
|
-
newKeySingleParam(newKey, `transKey`, C_TYP_STRING);
|
|
3812
|
+
newKeySingleParam(newKey, `transKey`, C_TYP_STRING, ``);
|
|
3786
3813
|
|
|
3787
3814
|
// シャッフルグループ (shuffleX_Y)
|
|
3788
3815
|
newKeyTripleParam(newKey, `shuffle`);
|
|
@@ -3972,7 +3999,7 @@ const titleInit = _ => {
|
|
|
3972
3999
|
customVersion += ` / ${g_localVersion2}`;
|
|
3973
4000
|
}
|
|
3974
4001
|
const releaseDate = (g_headerObj.releaseDate !== `` ? ` @${g_headerObj.releaseDate}` : ``);
|
|
3975
|
-
const versionName = `© 2018-${g_revisedDate.slice(0, 4)} ティックル, CW ${g_version}${
|
|
4002
|
+
const versionName = `© 2018-${g_revisedDate.slice(0, 4)} ティックル, CW ${g_version}${customVersion}${releaseDate}`;
|
|
3976
4003
|
|
|
3977
4004
|
let reloadFlg = false;
|
|
3978
4005
|
const getLinkSiz = _name => getFontSize(_name, g_sWidth / 2 - 20, getBasicFont(), g_limitObj.lnkSiz, 12);
|
|
@@ -6008,7 +6035,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6008
6035
|
setKeyConfigCursor();
|
|
6009
6036
|
}, {
|
|
6010
6037
|
x: keyconX, y: 50 + C_KYC_REPHEIGHT * k + keyconY,
|
|
6011
|
-
w: C_ARW_WIDTH, h: C_KYC_REPHEIGHT, siz: g_limitObj.
|
|
6038
|
+
w: C_ARW_WIDTH, h: C_KYC_REPHEIGHT, siz: g_limitObj.keySetSiz,
|
|
6012
6039
|
}, g_cssObj.button_Default_NoColor, g_cssObj.title_base)
|
|
6013
6040
|
);
|
|
6014
6041
|
|
|
@@ -6534,12 +6561,13 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6534
6561
|
|
|
6535
6562
|
// 全角切替、BackSpace、Deleteキー、Escキーは割り当て禁止
|
|
6536
6563
|
// また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
|
|
6537
|
-
const disabledKeys = [229, 240, 242, 243, 244, 91, 29, 28, 27, g_prevKey];
|
|
6564
|
+
const disabledKeys = [229, 240, 242, 243, 244, 91, 29, 28, 27, 259, g_prevKey];
|
|
6538
6565
|
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
6539
6566
|
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
6540
6567
|
return;
|
|
6541
6568
|
} else if ((setKey === C_KEY_TITLEBACK && g_currentk === 0) ||
|
|
6542
|
-
(keyIsDown(g_kCdNameObj.
|
|
6569
|
+
((keyIsDown(g_kCdNameObj.metaLKey) || keyIsDown(g_kCdNameObj.metaRKey)) &&
|
|
6570
|
+
(keyIsDown(g_kCdNameObj.shiftLKey) || keyIsDown(g_kCdNameObj.shiftRKey)))) {
|
|
6543
6571
|
return;
|
|
6544
6572
|
}
|
|
6545
6573
|
|
|
@@ -6844,6 +6872,7 @@ const loadingScoreInit = async () => {
|
|
|
6844
6872
|
await loadChartFile();
|
|
6845
6873
|
const tkObj = getKeyInfo();
|
|
6846
6874
|
const [keyCtrlPtn, keyNum] = [tkObj.keyCtrlPtn, tkObj.keyNum];
|
|
6875
|
+
g_headerObj.blankFrameDef = setVal(g_headerObj.blankFrameDefs[g_stateObj.scoreId], g_headerObj.blankFrameDefs[0]);
|
|
6847
6876
|
g_headerObj.blankFrame = g_headerObj.blankFrameDef;
|
|
6848
6877
|
|
|
6849
6878
|
// ユーザカスタムイベント
|
|
@@ -8957,7 +8986,7 @@ const mainInit = _ => {
|
|
|
8957
8986
|
// キー操作イベント
|
|
8958
8987
|
document.onkeydown = evt => {
|
|
8959
8988
|
evt.preventDefault();
|
|
8960
|
-
const setCode =
|
|
8989
|
+
const setCode = evt.code;
|
|
8961
8990
|
|
|
8962
8991
|
if (evt.repeat && !g_mainRepeatObj.key.includes(setCode)) {
|
|
8963
8992
|
return blockCode(setCode);
|
|
@@ -8969,7 +8998,7 @@ const mainInit = _ => {
|
|
|
8969
8998
|
// 曲中リトライ、タイトルバック
|
|
8970
8999
|
if (setCode === g_kCdN[g_headerObj.keyRetry]) {
|
|
8971
9000
|
|
|
8972
|
-
if (g_isMac && keyIsDown(g_kCdNameObj.
|
|
9001
|
+
if (g_isMac && (keyIsDown(g_kCdNameObj.shiftLKey) || keyIsDown(g_kCdNameObj.shiftRKey))) {
|
|
8973
9002
|
// Mac OS、IPad OSはDeleteキーが無いためShift+BSで代用
|
|
8974
9003
|
g_audio.pause();
|
|
8975
9004
|
clearTimeout(g_timeoutEvtId);
|
|
@@ -8986,7 +9015,7 @@ const mainInit = _ => {
|
|
|
8986
9015
|
} else if (setCode === g_kCdN[g_headerObj.keyTitleBack]) {
|
|
8987
9016
|
g_audio.pause();
|
|
8988
9017
|
clearTimeout(g_timeoutEvtId);
|
|
8989
|
-
if (keyIsDown(g_kCdNameObj.
|
|
9018
|
+
if (keyIsDown(g_kCdNameObj.shiftLKey) || keyIsDown(g_kCdNameObj.shiftRKey)) {
|
|
8990
9019
|
if (g_currentArrows !== g_fullArrows || g_stateObj.lifeMode === C_LFE_BORDER && g_workObj.lifeVal < g_workObj.lifeBorder) {
|
|
8991
9020
|
g_gameOverFlg = true;
|
|
8992
9021
|
g_finishFlg = false;
|
|
@@ -9025,7 +9054,7 @@ const mainInit = _ => {
|
|
|
9025
9054
|
};
|
|
9026
9055
|
|
|
9027
9056
|
document.onkeyup = evt => {
|
|
9028
|
-
const setCode =
|
|
9057
|
+
const setCode = evt.code;
|
|
9029
9058
|
g_inputKeyBuffer[setCode] = false;
|
|
9030
9059
|
mainKeyUpActFunc[g_stateObj.autoAll]();
|
|
9031
9060
|
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2023/05/
|
|
8
|
+
* Revised : 2023/05/07 (v32.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -112,6 +112,7 @@ const g_limitObj = {
|
|
|
112
112
|
titleSiz: 32,
|
|
113
113
|
mainSiz: 14,
|
|
114
114
|
musicTitleSiz: 13,
|
|
115
|
+
keySetSiz: 16,
|
|
115
116
|
};
|
|
116
117
|
|
|
117
118
|
/** 設定項目の位置 */
|
|
@@ -638,8 +639,11 @@ const g_escapeStr = {
|
|
|
638
639
|
[`space`, `frzSpace`], [`iyo`, `frzIyo`], [`gor`, `frzGor`], [`oni`, `foni`],
|
|
639
640
|
],
|
|
640
641
|
keyCtrlName: [
|
|
641
|
-
[`
|
|
642
|
+
[`ShiftLeft`, `Shift`], [`ControlLeft`, `Control`], [`AltLeft`, `Alt`],
|
|
643
|
+
[`Digit`, `D`], [`Numpad`, `N`], [`Semicolon`, `;`],
|
|
642
644
|
[`Multiply`, `*`], [`Add`, `+`], [`Subtract`, `-`], [`Decimal`, `.`], [`Divide`, `Div`],
|
|
645
|
+
[`Quote`, `Ja-Colon`], [`BracketLeft`, `Ja-@`], [`BracketRight`, `Ja-[`],
|
|
646
|
+
[`Backslash`, `Ja-]`], [`Equal`, `Ja-^`],
|
|
643
647
|
],
|
|
644
648
|
};
|
|
645
649
|
|
|
@@ -1056,7 +1060,7 @@ let g_prevKey = -1;
|
|
|
1056
1060
|
// キーコード
|
|
1057
1061
|
const g_kCd = [];
|
|
1058
1062
|
const g_kCdN = [];
|
|
1059
|
-
for (let j = 0; j <
|
|
1063
|
+
for (let j = 0; j < 260; j++) {
|
|
1060
1064
|
g_kCd[j] = ``;
|
|
1061
1065
|
g_kCdN[j] = ``;
|
|
1062
1066
|
}
|
|
@@ -1068,9 +1072,9 @@ g_kCd[8] = (g_isMac ? `Delete` : `BackSpace`);
|
|
|
1068
1072
|
g_kCd[9] = `Tab`;
|
|
1069
1073
|
g_kCd[12] = `Clear`;
|
|
1070
1074
|
g_kCd[13] = `Enter`;
|
|
1071
|
-
g_kCd[16] = `Shift`;
|
|
1072
|
-
g_kCd[17] = `Ctrl`;
|
|
1073
|
-
g_kCd[18] = `Alt`;
|
|
1075
|
+
g_kCd[16] = `L)Shift`;
|
|
1076
|
+
g_kCd[17] = `L)Ctrl`;
|
|
1077
|
+
g_kCd[18] = `L)Alt`;
|
|
1074
1078
|
g_kCd[19] = `Pause`;
|
|
1075
1079
|
g_kCd[27] = `Esc`;
|
|
1076
1080
|
g_kCd[28] = `Conv`;
|
|
@@ -1174,6 +1178,9 @@ g_kCd[222] = `^ ~`;
|
|
|
1174
1178
|
g_kCd[226] = `\\ _`;
|
|
1175
1179
|
g_kCd[229] = `IME`;
|
|
1176
1180
|
g_kCd[240] = `CapsLk`;
|
|
1181
|
+
g_kCd[256] = `R)Shift`;
|
|
1182
|
+
g_kCd[257] = `R)Ctrl`;
|
|
1183
|
+
g_kCd[258] = `R)Alt`;
|
|
1177
1184
|
|
|
1178
1185
|
// 従来のキーコードとの変換用
|
|
1179
1186
|
g_kCdN[0] = `- - -`; // 無効値
|
|
@@ -1288,10 +1295,16 @@ g_kCdN[222] = `Equal`;
|
|
|
1288
1295
|
g_kCdN[226] = `IntlRo`;
|
|
1289
1296
|
g_kCdN[229] = `Backquote`;
|
|
1290
1297
|
g_kCdN[240] = `CapsLock`;
|
|
1298
|
+
g_kCdN[256] = `ShiftRight`;
|
|
1299
|
+
g_kCdN[257] = `ControlRight`;
|
|
1300
|
+
g_kCdN[258] = `AltRight`;
|
|
1301
|
+
g_kCdN[259] = `MetaRight`;
|
|
1291
1302
|
|
|
1292
1303
|
const g_kCdNameObj = {
|
|
1293
|
-
|
|
1294
|
-
|
|
1304
|
+
shiftLKey: `ShiftLeft`,
|
|
1305
|
+
shiftRKey: `ShiftRight`,
|
|
1306
|
+
metaLKey: `MetaLeft`,
|
|
1307
|
+
metaRKey: `MetaRight`,
|
|
1295
1308
|
};
|
|
1296
1309
|
|
|
1297
1310
|
// 画面別ショートカット
|
|
@@ -1306,47 +1319,79 @@ const g_shortcutObj = {
|
|
|
1306
1319
|
},
|
|
1307
1320
|
option: {
|
|
1308
1321
|
ShiftLeft_KeyD: { id: `lnkDifficultyL` },
|
|
1322
|
+
ShiftRight_KeyD: { id: `lnkDifficultyL` },
|
|
1309
1323
|
KeyD: { id: `lnkDifficultyR` },
|
|
1324
|
+
|
|
1310
1325
|
ShiftLeft_ArrowRight: { id: `lnkSpeedR` },
|
|
1326
|
+
ShiftRight_ArrowRight: { id: `lnkSpeedR` },
|
|
1311
1327
|
AltLeft_ArrowRight: { id: `lnkSpeedHR` },
|
|
1328
|
+
AltRight_ArrowRight: { id: `lnkSpeedHR` },
|
|
1312
1329
|
ArrowRight: { id: `lnkSpeedRR` },
|
|
1313
1330
|
ShiftLeft_ArrowLeft: { id: `lnkSpeedL` },
|
|
1331
|
+
ShiftRight_ArrowLeft: { id: `lnkSpeedL` },
|
|
1314
1332
|
AltLeft_ArrowLeft: { id: `lnkSpeedHL` },
|
|
1333
|
+
AltRight_ArrowLeft: { id: `lnkSpeedHL` },
|
|
1315
1334
|
ArrowLeft: { id: `lnkSpeedLL` },
|
|
1335
|
+
|
|
1316
1336
|
KeyL: { id: `lnkDifficulty` },
|
|
1317
1337
|
|
|
1318
1338
|
ShiftLeft_KeyM: { id: `lnkMotionL` },
|
|
1339
|
+
ShiftRight_KeyM: { id: `lnkMotionL` },
|
|
1319
1340
|
KeyM: { id: `lnkMotionR` },
|
|
1320
1341
|
ArrowUp: { id: `lnkScrollL` },
|
|
1321
1342
|
ArrowDown: { id: `lnkScrollR` },
|
|
1322
1343
|
KeyR: { id: `lnkReverseR`, dfId: `lnkReverseR`, exId: `btnReverse` },
|
|
1323
1344
|
|
|
1324
1345
|
ShiftLeft_KeyS: { id: `lnkShuffleL` },
|
|
1346
|
+
ShiftRight_KeyS: { id: `lnkShuffleL` },
|
|
1325
1347
|
KeyS: { id: `lnkShuffleR` },
|
|
1326
1348
|
ShiftLeft_KeyA: { id: `lnkAutoPlayL` },
|
|
1349
|
+
ShiftRight_KeyA: { id: `lnkAutoPlayL` },
|
|
1327
1350
|
KeyA: { id: `lnkAutoPlayR` },
|
|
1328
1351
|
ShiftLeft_KeyG: { id: `lnkGaugeL` },
|
|
1352
|
+
ShiftRight_KeyG: { id: `lnkGaugeL` },
|
|
1329
1353
|
KeyG: { id: `lnkGaugeR` },
|
|
1330
1354
|
|
|
1331
1355
|
AltLeft_ShiftLeft_Semicolon: { id: `lnkAdjustmentHR` },
|
|
1356
|
+
AltLeft_ShiftRight_Semicolon: { id: `lnkAdjustmentHR` },
|
|
1357
|
+
AltRight_ShiftLeft_Semicolon: { id: `lnkAdjustmentHR` },
|
|
1358
|
+
AltRight_ShiftRight_Semicolon: { id: `lnkAdjustmentHR` },
|
|
1332
1359
|
ShiftLeft_Semicolon: { id: `lnkAdjustmentR` },
|
|
1360
|
+
ShiftRight_Semicolon: { id: `lnkAdjustmentR` },
|
|
1333
1361
|
AltLeft_Semicolon: { id: `lnkAdjustmentRRR` },
|
|
1362
|
+
AltRight_Semicolon: { id: `lnkAdjustmentRRR` },
|
|
1334
1363
|
Semicolon: { id: `lnkAdjustmentRR` },
|
|
1335
1364
|
AltLeft_ShiftLeft_Minus: { id: `lnkAdjustmentHL` },
|
|
1365
|
+
AltLeft_ShiftRight_Minus: { id: `lnkAdjustmentHL` },
|
|
1366
|
+
AltRight_ShiftLeft_Minus: { id: `lnkAdjustmentHL` },
|
|
1367
|
+
AltRight_ShiftRight_Minus: { id: `lnkAdjustmentHL` },
|
|
1336
1368
|
ShiftLeft_Minus: { id: `lnkAdjustmentL` },
|
|
1369
|
+
ShiftRight_Minus: { id: `lnkAdjustmentL` },
|
|
1337
1370
|
AltLeft_Minus: { id: `lnkAdjustmentLLL` },
|
|
1371
|
+
AltRight_Minus: { id: `lnkAdjustmentLLL` },
|
|
1338
1372
|
Minus: { id: `lnkAdjustmentLL` },
|
|
1339
1373
|
|
|
1340
1374
|
AltLeft_ShiftLeft_NumpadAdd: { id: `lnkAdjustmentHR` },
|
|
1375
|
+
AltLeft_ShiftRight_NumpadAdd: { id: `lnkAdjustmentHR` },
|
|
1376
|
+
AltRight_ShiftLeft_NumpadAdd: { id: `lnkAdjustmentHR` },
|
|
1377
|
+
AltRight_ShiftRight_NumpadAdd: { id: `lnkAdjustmentHR` },
|
|
1341
1378
|
ShiftLeft_NumpadAdd: { id: `lnkAdjustmentR` },
|
|
1379
|
+
ShiftRight_NumpadAdd: { id: `lnkAdjustmentR` },
|
|
1342
1380
|
AltLeft_NumpadAdd: { id: `lnkAdjustmentRRR` },
|
|
1381
|
+
AltRight_NumpadAdd: { id: `lnkAdjustmentRRR` },
|
|
1343
1382
|
NumpadAdd: { id: `lnkAdjustmentRR` },
|
|
1344
1383
|
AltLeft_ShiftLeft_NumpadSubtract: { id: `lnkAdjustmentHL` },
|
|
1384
|
+
AltLeft_ShiftRight_NumpadSubtract: { id: `lnkAdjustmentHL` },
|
|
1385
|
+
AltRight_ShiftLeft_NumpadSubtract: { id: `lnkAdjustmentHL` },
|
|
1386
|
+
AltRight_ShiftRight_NumpadSubtract: { id: `lnkAdjustmentHL` },
|
|
1345
1387
|
ShiftLeft_NumpadSubtract: { id: `lnkAdjustmentL` },
|
|
1388
|
+
ShiftRight_NumpadSubtract: { id: `lnkAdjustmentL` },
|
|
1346
1389
|
AltLeft_NumpadSubtract: { id: `lnkAdjustmentLLL` },
|
|
1390
|
+
ShiftRight_NumpadSubtract: { id: `lnkAdjustmentL` },
|
|
1347
1391
|
NumpadSubtract: { id: `lnkAdjustmentLL` },
|
|
1348
1392
|
|
|
1349
1393
|
ShiftLeft_KeyV: { id: `lnkVolumeL` },
|
|
1394
|
+
ShiftRight_KeyV: { id: `lnkVolumeL` },
|
|
1350
1395
|
KeyV: { id: `lnkVolumeR` },
|
|
1351
1396
|
|
|
1352
1397
|
KeyI: { id: `btnGraph` },
|
|
@@ -1365,10 +1410,12 @@ const g_shortcutObj = {
|
|
|
1365
1410
|
Enter: { id: `btnPlay` },
|
|
1366
1411
|
NumpadEnter: { id: `btnPlay` },
|
|
1367
1412
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
1413
|
+
ShiftRight_Tab: { id: `btnBack` },
|
|
1368
1414
|
Tab: { id: `btnDisplay` },
|
|
1369
1415
|
},
|
|
1370
1416
|
difSelector: {
|
|
1371
1417
|
ShiftLeft_KeyD: { id: `lnkDifficultyL` },
|
|
1418
|
+
ShiftRight_KeyD: { id: `lnkDifficultyL` },
|
|
1372
1419
|
KeyD: { id: `lnkDifficultyR` },
|
|
1373
1420
|
KeyR: { id: `difRandom` },
|
|
1374
1421
|
KeyL: { id: `lnkDifficulty` },
|
|
@@ -1390,17 +1437,22 @@ const g_shortcutObj = {
|
|
|
1390
1437
|
Enter: { id: `lnkDifficulty` },
|
|
1391
1438
|
NumpadEnter: { id: `lnkDifficulty` },
|
|
1392
1439
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
1440
|
+
ShiftRight_Tab: { id: `btnBack` },
|
|
1393
1441
|
Tab: { id: `btnDisplay` },
|
|
1394
1442
|
},
|
|
1395
1443
|
settingsDisplay: {
|
|
1396
1444
|
ShiftLeft_KeyA: { id: `lnkAppearanceL` },
|
|
1445
|
+
ShiftRight_KeyA: { id: `lnkAppearanceL` },
|
|
1397
1446
|
KeyA: { id: `lnkAppearanceR` },
|
|
1398
1447
|
ShiftLeft_KeyO: { id: `lnkOpacityL` },
|
|
1448
|
+
ShiftRight_KeyO: { id: `lnkOpacityL` },
|
|
1399
1449
|
KeyO: { id: `lnkOpacityR` },
|
|
1400
1450
|
|
|
1401
1451
|
ShiftLeft_KeyB: { id: `lnkHitPositionR` },
|
|
1452
|
+
ShiftRight_KeyB: { id: `lnkHitPositionR` },
|
|
1402
1453
|
KeyB: { id: `lnkHitPositionRR` },
|
|
1403
1454
|
ShiftLeft_KeyT: { id: `lnkHitPositionL` },
|
|
1455
|
+
ShiftRight_KeyT: { id: `lnkHitPositionL` },
|
|
1404
1456
|
KeyT: { id: `lnkHitPositionLL` },
|
|
1405
1457
|
|
|
1406
1458
|
Digit1: { id: `lnkstepZone` },
|
|
@@ -1437,6 +1489,7 @@ const g_shortcutObj = {
|
|
|
1437
1489
|
Enter: { id: `btnPlay` },
|
|
1438
1490
|
NumpadEnter: { id: `btnPlay` },
|
|
1439
1491
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
1492
|
+
ShiftRight_Tab: { id: `btnBack` },
|
|
1440
1493
|
Tab: { id: `btnSettings` },
|
|
1441
1494
|
},
|
|
1442
1495
|
keyConfig: {
|
|
@@ -1451,7 +1504,9 @@ const g_shortcutObj = {
|
|
|
1451
1504
|
result: {
|
|
1452
1505
|
Escape: { id: `btnBack` },
|
|
1453
1506
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
1507
|
+
ShiftRight_Tab: { id: `btnBack` },
|
|
1454
1508
|
ControlLeft_KeyC: { id: `` },
|
|
1509
|
+
ControlRight_KeyC: { id: `` },
|
|
1455
1510
|
KeyC: { id: `btnCopy`, reset: true },
|
|
1456
1511
|
KeyT: { id: `btnTweet`, reset: true },
|
|
1457
1512
|
KeyG: { id: `btnGitter`, reset: true },
|