danoniplus 35.3.0 → 35.4.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 +92 -28
- package/js/lib/danoni_constants.js +81 -3
- 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 : 2024/02/
|
|
7
|
+
* Revised : 2024/02/29
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 35.
|
|
12
|
-
const g_revisedDate = `2024/02/
|
|
11
|
+
const g_version = `Ver 35.4.2`;
|
|
12
|
+
const g_revisedDate = `2024/02/29`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -3363,7 +3363,8 @@ const getMusicNameMultiLine = _musicName => {
|
|
|
3363
3363
|
*/
|
|
3364
3364
|
const updateImgType = (_imgType, _initFlg = false) => {
|
|
3365
3365
|
if (_initFlg) {
|
|
3366
|
-
|
|
3366
|
+
const baseDir = (_imgType.name === `` ? `` : `${_imgType.name}/`);
|
|
3367
|
+
C_IMG_TITLE_ARROW = `../img/${baseDir}arrow.${_imgType.extension}`;
|
|
3367
3368
|
}
|
|
3368
3369
|
resetImgs(_imgType.name, _imgType.extension);
|
|
3369
3370
|
reloadImgObj();
|
|
@@ -3765,6 +3766,24 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3765
3766
|
return _num.startsWith(`b`) ? parseFloat(_num.slice(1)) + _divNum : parseFloat(_num);
|
|
3766
3767
|
}
|
|
3767
3768
|
|
|
3769
|
+
/**
|
|
3770
|
+
* キーパターンの略名から実際のデータへ展開
|
|
3771
|
+
* @param {string} _str
|
|
3772
|
+
* @param {string} _name
|
|
3773
|
+
* @param {function} _convFunc
|
|
3774
|
+
*/
|
|
3775
|
+
const expandKeyPtn = (_str, _name, _convFunc) => {
|
|
3776
|
+
const pos = _str.indexOf(`>`);
|
|
3777
|
+
const expandData = _ptnstr => structuredClone(g_keyObj[`${_name}${getKeyPtnName(_ptnstr)}`]) ?? [_convFunc(_ptnstr)];
|
|
3778
|
+
|
|
3779
|
+
if (pos > 0 && _name === `chara`) {
|
|
3780
|
+
const [header, ptn] = [_str.substring(0, pos), _str.substring(pos + 1)];
|
|
3781
|
+
return expandData(ptn)?.map(n => `${header}${n}`);
|
|
3782
|
+
} else {
|
|
3783
|
+
return expandData(_str);
|
|
3784
|
+
}
|
|
3785
|
+
};
|
|
3786
|
+
|
|
3768
3787
|
/**
|
|
3769
3788
|
* 新キー用複合パラメータ
|
|
3770
3789
|
* @param {string} _key キー数
|
|
@@ -3788,9 +3807,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3788
3807
|
// |keyCtrl9j=Tab,7_0,Enter| -> |keyCtrl9j=Tab,S,D,F,Space,J,K,L,Enter| のように補完
|
|
3789
3808
|
// |pos9j=0..4,6..9| -> |pos9j=0,1,2,3,4,6,7,8,9|
|
|
3790
3809
|
g_keyObj[`${keyheader}_${k + dfPtn}`] =
|
|
3791
|
-
toOriginalArray(tmpArray[k], toSameValStr).map(n =>
|
|
3792
|
-
structuredClone(g_keyObj[`${_name}${getKeyPtnName(n)}`]) ?? [_convFunc(n)]
|
|
3793
|
-
).flat();
|
|
3810
|
+
toOriginalArray(tmpArray[k], toSameValStr).map(n => expandKeyPtn(n, _name, _convFunc)).flat();
|
|
3794
3811
|
if (baseCopyFlg) {
|
|
3795
3812
|
g_keyObj[`${keyheader}_${k + dfPtn}d`] = structuredClone(g_keyObj[`${keyheader}_${k + dfPtn}`]);
|
|
3796
3813
|
}
|
|
@@ -3840,8 +3857,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
3840
3857
|
// 部分的にキーパターン指定があった場合は既存パターンを展開 (例: |shuffle9j=2,7_0_0,2|)
|
|
3841
3858
|
g_keyObj[`${keyheader}_${k + dfPtn}_${ptnCnt}`] =
|
|
3842
3859
|
makeBaseArray(toOriginalArray(list, toSameValStr).map(n =>
|
|
3843
|
-
|
|
3844
|
-
[isNaN(parseInt(n)) ? n : parseInt(n, 10)]
|
|
3860
|
+
expandKeyPtn(n, _name, _str => isNaN(parseInt(_str)) ? _str : parseInt(_str, 10))
|
|
3845
3861
|
).flat(), g_keyObj[`${g_keyObj.defaultProp}${_key}_${k + dfPtn}`].length, 0);
|
|
3846
3862
|
ptnCnt++;
|
|
3847
3863
|
}
|
|
@@ -4007,6 +4023,9 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
4007
4023
|
// 別キーフラグ (transKeyX_Y)
|
|
4008
4024
|
newKeySingleParam(newKey, `transKey`, C_TYP_STRING, ``);
|
|
4009
4025
|
|
|
4026
|
+
// フラットモード (flatModeX_Y)
|
|
4027
|
+
newKeySingleParam(newKey, `flatMode`, C_TYP_BOOLEAN, false);
|
|
4028
|
+
|
|
4010
4029
|
// シャッフルグループ (shuffleX_Y)
|
|
4011
4030
|
newKeyTripleParam(newKey, `shuffle`);
|
|
4012
4031
|
|
|
@@ -6002,28 +6021,63 @@ const createSettingsDisplayWindow = _sprite => {
|
|
|
6002
6021
|
const makeDisplayButton = (_name, _heightPos, _widthPos) => {
|
|
6003
6022
|
|
|
6004
6023
|
const flg = g_stateObj[`d_${_name.toLowerCase()}`];
|
|
6005
|
-
const list = [C_FLG_OFF, C_FLG_ON];
|
|
6006
6024
|
const linkId = `lnk${_name}`;
|
|
6007
6025
|
|
|
6008
6026
|
if (g_headerObj[`${_name}Use`]) {
|
|
6009
|
-
const switchDisplay = evt => {
|
|
6010
|
-
const displayFlg = g_stateObj[`d_${_name.toLowerCase()}`];
|
|
6011
|
-
const displayNum = list.findIndex(flg => flg === displayFlg);
|
|
6012
|
-
const nextDisplayFlg = list[(displayNum + 1) % list.length];
|
|
6013
|
-
g_stateObj[`d_${_name.toLowerCase()}`] = nextDisplayFlg;
|
|
6014
|
-
evt.target.classList.replace(g_cssObj[`button_${displayFlg}`], g_cssObj[`button_${nextDisplayFlg}`]);
|
|
6015
6027
|
|
|
6016
|
-
|
|
6017
|
-
}
|
|
6028
|
+
// 設定名、CSS名(2種)、表示名
|
|
6029
|
+
const list = [C_FLG_OFF, C_FLG_ON].concat(g_settings[`d_${_name}s`] || []);
|
|
6030
|
+
const cssBarList = [C_FLG_OFF, C_FLG_ON].concat(Array(g_settings[`d_${_name}s`]?.length).fill(g_settings.d_cssBarExName) || []);
|
|
6031
|
+
const cssBgList = [g_settings.d_cssBgName, g_settings.d_cssBgName].concat(Array(g_settings[`d_${_name}s`]?.length).fill(g_settings.d_cssBgExName) || []);
|
|
6032
|
+
const lbls = [toCapitalize(_name), toCapitalize(_name)].concat(g_settings[`d_${_name}s`] || []);
|
|
6033
|
+
|
|
6034
|
+
const dispView = _ => [C_FLG_OFF, C_FLG_ON].includes(g_stateObj[`d_${_name.toLowerCase()}`]) ?
|
|
6035
|
+
g_lblNameObj[`d_${toCapitalize(_name)}`] : getStgDetailName(lbls[g_settings.displayNum[_name]]);
|
|
6036
|
+
|
|
6037
|
+
const withShortCutDesc = _ => createScText(document.getElementById(linkId), `${toCapitalize(_name)}`,
|
|
6038
|
+
{ displayName: g_currentPage, targetLabel: linkId, x: -5 });
|
|
6039
|
+
|
|
6040
|
+
/**
|
|
6041
|
+
* Displayボタン処理
|
|
6042
|
+
* @param {number} _scrollNum
|
|
6043
|
+
* @param {boolean} _filterFlg
|
|
6044
|
+
*/
|
|
6045
|
+
const switchDisplay = (_scrollNum = 1, _filterFlg = true) => {
|
|
6046
|
+
const prevDisp = g_settings.displayNum[_name];
|
|
6047
|
+
const [prevBarColor, prevBgColor] = [cssBarList[prevDisp], cssBgList[prevDisp]];
|
|
6048
|
+
|
|
6049
|
+
g_settings.displayNum[_name] = (prevDisp + _scrollNum) % (_filterFlg ? 2 : list.length);
|
|
6050
|
+
const nextDisp = g_settings.displayNum[_name];
|
|
6051
|
+
const [nextBarColor, nextBgColor] = [cssBarList[nextDisp], cssBgList[nextDisp]];
|
|
6052
|
+
|
|
6053
|
+
g_stateObj[`d_${_name.toLowerCase()}`] = list[g_settings.displayNum[_name]];
|
|
6054
|
+
document.getElementById(linkId).innerHTML = dispView();
|
|
6055
|
+
document.getElementById(linkId).classList.replace(g_cssObj[`button_${prevBarColor}`], g_cssObj[`button_${nextBarColor}`]);
|
|
6056
|
+
document.getElementById(linkId).classList.replace(g_cssObj[`button_${prevBgColor}`], g_cssObj[`button_${nextBgColor}`]);
|
|
6057
|
+
|
|
6058
|
+
withShortCutDesc();
|
|
6059
|
+
interlockingButton(g_headerObj, _name, nextBarColor, prevBarColor, true);
|
|
6060
|
+
};
|
|
6061
|
+
|
|
6062
|
+
// Displayボタン初期化
|
|
6063
|
+
g_settings.displayNum[_name] = list.findIndex(flg => flg === g_stateObj[`d_${_name.toLowerCase()}`]);
|
|
6018
6064
|
displaySprite.appendChild(
|
|
6019
|
-
makeSettingLblCssButton(linkId,
|
|
6065
|
+
makeSettingLblCssButton(linkId, dispView(), _heightPos, _ => switchDisplay(), {
|
|
6020
6066
|
x: 30 + 180 * _widthPos, w: 170,
|
|
6021
6067
|
title: g_msgObj[`d_${_name.toLowerCase()}`], borderStyle: `solid`,
|
|
6022
|
-
cxtFunc:
|
|
6023
|
-
}, `button_${
|
|
6068
|
+
cxtFunc: _ => switchDisplay(-1),
|
|
6069
|
+
}, `button_${cssBgList[g_settings.displayNum[_name]]}`, `button_${cssBarList[g_settings.displayNum[_name]]}`)
|
|
6024
6070
|
);
|
|
6025
|
-
|
|
6026
|
-
|
|
6071
|
+
withShortCutDesc();
|
|
6072
|
+
|
|
6073
|
+
// Display切替ボタン(ON/OFF以外用)
|
|
6074
|
+
if (g_settings[`d_${_name}s`] !== undefined) {
|
|
6075
|
+
displaySprite.appendChild(
|
|
6076
|
+
makeSettingLblCssButton(`${linkId}R`, `>`, _heightPos, _ => switchDisplay(1, false), {
|
|
6077
|
+
x: 175 + 180 * _widthPos, w: 25,
|
|
6078
|
+
}, g_cssObj.button_Mini)
|
|
6079
|
+
);
|
|
6080
|
+
}
|
|
6027
6081
|
} else {
|
|
6028
6082
|
displaySprite.appendChild(
|
|
6029
6083
|
createDivCss2Label(linkId, g_lblNameObj[`d_${toCapitalize(_name)}`] + `:${g_headerObj[`${_name}Set`]}`, {
|
|
@@ -8819,7 +8873,8 @@ const mainInit = _ => {
|
|
|
8819
8873
|
let speedCnts = 0;
|
|
8820
8874
|
let boostCnts = 0;
|
|
8821
8875
|
let keychCnts = 0;
|
|
8822
|
-
const
|
|
8876
|
+
const flatMode = g_stateObj.d_stepzone === `FlatBar` || g_stateObj.scroll.endsWith(`Flat`) || g_keyObj[`flatMode${keyCtrlPtn}`];
|
|
8877
|
+
const stepZoneDisp = (g_stateObj.d_stepzone === C_FLG_OFF || flatMode) ? C_DIS_NONE : C_DIS_INHERIT;
|
|
8823
8878
|
|
|
8824
8879
|
for (let j = 0; j < keyNum; j++) {
|
|
8825
8880
|
const colorPos = g_keyObj[`color${keyCtrlPtn}`][j];
|
|
@@ -8862,17 +8917,22 @@ const mainInit = _ => {
|
|
|
8862
8917
|
|
|
8863
8918
|
);
|
|
8864
8919
|
}
|
|
8865
|
-
if (
|
|
8920
|
+
if (flatMode && g_stateObj.d_stepzone !== C_FLG_OFF) {
|
|
8866
8921
|
|
|
8867
8922
|
// スクロール名に`R-`が含まれていればリバースと見做す
|
|
8868
8923
|
const reverseFlg = g_stateObj.reverse === C_FLG_ON || g_stateObj.scroll.startsWith(`R-`);
|
|
8869
8924
|
|
|
8870
8925
|
// ステップゾーンの代わり
|
|
8871
8926
|
const lineY = [(C_ARW_WIDTH - g_stateObj.flatStepHeight) / 2, (C_ARW_WIDTH + g_stateObj.flatStepHeight) / 2];
|
|
8927
|
+
const reverses = [reverseFlg, reverseFlg];
|
|
8928
|
+
if (makeDedupliArray(g_workObj.scrollDir).length > 1) {
|
|
8929
|
+
lineY.push(lineY[0], lineY[1]);
|
|
8930
|
+
reverses.push(!reverses[0], !reverses[1]);
|
|
8931
|
+
}
|
|
8872
8932
|
lineY.forEach((y, j) => {
|
|
8873
8933
|
mainSprite.appendChild(
|
|
8874
8934
|
createColorObject2(`stepBar${j}`, {
|
|
8875
|
-
x: 0, y: C_STEP_Y + g_posObj.reverseStepY * Number(
|
|
8935
|
+
x: 0, y: C_STEP_Y + g_posObj.reverseStepY * Number(reverses[j]) + y,
|
|
8876
8936
|
w: g_headerObj.playingWidth - 50, h: 1, styleName: `lifeBar`,
|
|
8877
8937
|
}, g_cssObj.life_Failed)
|
|
8878
8938
|
);
|
|
@@ -10701,7 +10761,8 @@ const resultInit = _ => {
|
|
|
10701
10761
|
].filter(value => value !== ``).join(`, `);
|
|
10702
10762
|
|
|
10703
10763
|
let displayData = [
|
|
10704
|
-
withOptions(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone
|
|
10764
|
+
withOptions(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone +
|
|
10765
|
+
`${g_stateObj.d_stepzone === C_FLG_OFF ? `` : ` : ${g_stateObj.d_stepzone}`}`),
|
|
10705
10766
|
withOptions(g_stateObj.d_judgment, C_FLG_ON, g_lblNameObj.rd_Judgment),
|
|
10706
10767
|
withOptions(g_stateObj.d_fastslow, C_FLG_ON, g_lblNameObj.rd_FastSlow),
|
|
10707
10768
|
withOptions(g_stateObj.d_lifegauge, C_FLG_ON, g_lblNameObj.rd_LifeGauge),
|
|
@@ -10712,7 +10773,10 @@ const resultInit = _ => {
|
|
|
10712
10773
|
if (displayData === ``) {
|
|
10713
10774
|
displayData = `All Visible`;
|
|
10714
10775
|
} else {
|
|
10715
|
-
displayData
|
|
10776
|
+
if (!displayData.includes(`,`) && g_stateObj.d_stepzone !== C_FLG_OFF) {
|
|
10777
|
+
} else {
|
|
10778
|
+
displayData += ` : OFF`;
|
|
10779
|
+
}
|
|
10716
10780
|
}
|
|
10717
10781
|
|
|
10718
10782
|
let display2Data = [
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2024/02/
|
|
8
|
+
* Revised : 2024/02/23 (v35.4.1)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -906,7 +906,6 @@ const g_settings = {
|
|
|
906
906
|
|
|
907
907
|
scrolls: [],
|
|
908
908
|
scrollNum: 0,
|
|
909
|
-
scrollFlat: [`Flat`, `R-Flat`],
|
|
910
909
|
|
|
911
910
|
shuffles: [C_FLG_OFF, `Mirror`, `X-Mirror`, `Turning`, `Random`, `Random+`, `S-Random`, `S-Random+`],
|
|
912
911
|
shuffleNum: 0,
|
|
@@ -944,6 +943,29 @@ const g_settings = {
|
|
|
944
943
|
scoreDetailCursors: [],
|
|
945
944
|
|
|
946
945
|
scoreDetailTrans: [[`Velocity`, `Speed`], [`DifLevel`, `ToolDif`]],
|
|
946
|
+
|
|
947
|
+
// Display設定の拡張用デザイン
|
|
948
|
+
d_cssBarExName: `RevON`,
|
|
949
|
+
d_cssBgName: `Default`,
|
|
950
|
+
d_cssBgExName: `Setting`,
|
|
951
|
+
|
|
952
|
+
// Display設定の拡張リスト
|
|
953
|
+
d_stepZones: [`FlatBar`],
|
|
954
|
+
|
|
955
|
+
displayNum: {
|
|
956
|
+
stepZone: 0,
|
|
957
|
+
judgment: 0,
|
|
958
|
+
fastSlow: 0,
|
|
959
|
+
lifeGauge: 0,
|
|
960
|
+
score: 0,
|
|
961
|
+
musicInfo: 0,
|
|
962
|
+
speed: 0,
|
|
963
|
+
color: 0,
|
|
964
|
+
lyrics: 0,
|
|
965
|
+
background: 0,
|
|
966
|
+
arrowEffect: 0,
|
|
967
|
+
special: 0,
|
|
968
|
+
},
|
|
947
969
|
};
|
|
948
970
|
|
|
949
971
|
g_settings.volumeNum = g_settings.volumes.length - 1;
|
|
@@ -1542,6 +1564,33 @@ const g_shortcutObj = {
|
|
|
1542
1564
|
ShiftRight_KeyT: { id: `lnkHitPositionL` },
|
|
1543
1565
|
KeyT: { id: `lnkHitPositionLL` },
|
|
1544
1566
|
|
|
1567
|
+
ShiftLeft_Digit1: { id: `lnkstepZoneR` },
|
|
1568
|
+
ShiftRight_Digit1: { id: `lnkstepZoneR` },
|
|
1569
|
+
ShiftLeft_Digit2: { id: `lnkjudgmentR` },
|
|
1570
|
+
ShiftRight_Digit2: { id: `lnkjudgmentR` },
|
|
1571
|
+
ShiftLeft_Digit3: { id: `lnkfastSlowR` },
|
|
1572
|
+
ShiftRight_Digit3: { id: `lnkfastSlowR` },
|
|
1573
|
+
ShiftLeft_Digit4: { id: `lnklifeGaugeR` },
|
|
1574
|
+
ShiftRight_Digit4: { id: `lnklifeGaugeR` },
|
|
1575
|
+
ShiftLeft_Digit5: { id: `lnkscoreR` },
|
|
1576
|
+
ShiftRight_Digit5: { id: `lnkscoreR` },
|
|
1577
|
+
ShiftLeft_Digit6: { id: `lnkmusicInfoR` },
|
|
1578
|
+
ShiftRight_Digit6: { id: `lnkmusicInfoR` },
|
|
1579
|
+
ShiftLeft_Digit7: { id: `lnkfilterLineR` },
|
|
1580
|
+
ShiftRight_Digit7: { id: `lnkfilterLineR` },
|
|
1581
|
+
ShiftLeft_Digit8: { id: `lnkspeedR` },
|
|
1582
|
+
ShiftRight_Digit8: { id: `lnkspeedR` },
|
|
1583
|
+
ShiftLeft_Digit9: { id: `lnkcolorR` },
|
|
1584
|
+
ShiftRight_Digit9: { id: `lnkcolorR` },
|
|
1585
|
+
ShiftLeft_Digit0: { id: `lnklyricsR` },
|
|
1586
|
+
ShiftRight_Digit0: { id: `lnklyricsR` },
|
|
1587
|
+
ShiftLeft_Semicolon: { id: `lnkbackgroundR` },
|
|
1588
|
+
ShiftRight_Semicolon: { id: `lnkbackgroundR` },
|
|
1589
|
+
ShiftLeft_Minus: { id: `lnkarrowEffectR` },
|
|
1590
|
+
ShiftRight_Minus: { id: `lnkarrowEffectR` },
|
|
1591
|
+
ShiftLeft_Slash: { id: `lnkspecialR` },
|
|
1592
|
+
ShiftRight_Slash: { id: `lnkspecialR` },
|
|
1593
|
+
|
|
1545
1594
|
Digit1: { id: `lnkstepZone` },
|
|
1546
1595
|
Digit2: { id: `lnkjudgment` },
|
|
1547
1596
|
Digit3: { id: `lnkfastSlow` },
|
|
@@ -1556,6 +1605,33 @@ const g_shortcutObj = {
|
|
|
1556
1605
|
Minus: { id: `lnkarrowEffect` },
|
|
1557
1606
|
Slash: { id: `lnkspecial` },
|
|
1558
1607
|
|
|
1608
|
+
ShiftLeft_Numpad1: { id: `lnkstepZoneR` },
|
|
1609
|
+
ShiftRight_Numpad1: { id: `lnkstepZoneR` },
|
|
1610
|
+
ShiftLeft_Numpad2: { id: `lnkjudgmentR` },
|
|
1611
|
+
ShiftRight_Numpad2: { id: `lnkjudgmentR` },
|
|
1612
|
+
ShiftLeft_Numpad3: { id: `lnkfastSlowR` },
|
|
1613
|
+
ShiftRight_Numpad3: { id: `lnkfastSlowR` },
|
|
1614
|
+
ShiftLeft_Numpad4: { id: `lnklifeGaugeR` },
|
|
1615
|
+
ShiftRight_Numpad4: { id: `lnklifeGaugeR` },
|
|
1616
|
+
ShiftLeft_Numpad5: { id: `lnkscoreR` },
|
|
1617
|
+
ShiftRight_Numpad5: { id: `lnkscoreR` },
|
|
1618
|
+
ShiftLeft_Numpad6: { id: `lnkmusicInfoR` },
|
|
1619
|
+
ShiftRight_Numpad6: { id: `lnkmusicInfoR` },
|
|
1620
|
+
ShiftLeft_Numpad7: { id: `lnkfilterLineR` },
|
|
1621
|
+
ShiftRight_Numpad7: { id: `lnkfilterLineR` },
|
|
1622
|
+
ShiftLeft_Numpad8: { id: `lnkspeedR` },
|
|
1623
|
+
ShiftRight_Numpad8: { id: `lnkspeedR` },
|
|
1624
|
+
ShiftLeft_Numpad9: { id: `lnkcolorR` },
|
|
1625
|
+
ShiftRight_Numpad9: { id: `lnkcolorR` },
|
|
1626
|
+
ShiftLeft_Numpad0: { id: `lnklyricsR` },
|
|
1627
|
+
ShiftRight_Numpad0: { id: `lnklyricsR` },
|
|
1628
|
+
ShiftLeft_NumpadAdd: { id: `lnkbackgroundR` },
|
|
1629
|
+
ShiftRight_NumpadAdd: { id: `lnkbackgroundR` },
|
|
1630
|
+
ShiftLeft_NumpadSubtract: { id: `lnkarrowEffectR` },
|
|
1631
|
+
ShiftRight_NumpadSubtract: { id: `lnkarrowEffectR` },
|
|
1632
|
+
ShiftLeft_NumpadDivide: { id: `lnkspecialR` },
|
|
1633
|
+
ShiftRight_NumpadDivide: { id: `lnkspecialR` },
|
|
1634
|
+
|
|
1559
1635
|
Numpad1: { id: `lnkstepZone` },
|
|
1560
1636
|
Numpad2: { id: `lnkjudgment` },
|
|
1561
1637
|
Numpad3: { id: `lnkfastSlow` },
|
|
@@ -2801,7 +2877,7 @@ const g_lblNameObj = {
|
|
|
2801
2877
|
d_Score: `Score`,
|
|
2802
2878
|
d_MusicInfo: `MusicInfo`,
|
|
2803
2879
|
d_FilterLine: `FilterLine`,
|
|
2804
|
-
d_Speed: `
|
|
2880
|
+
d_Speed: `Velocity`,
|
|
2805
2881
|
d_Color: `Color`,
|
|
2806
2882
|
d_Lyrics: `Lyrics`,
|
|
2807
2883
|
d_Background: `Background`,
|
|
@@ -2857,6 +2933,8 @@ const g_lblNameObj = {
|
|
|
2857
2933
|
'u_Hard': `Hard`,
|
|
2858
2934
|
'u_Easy': `Easy`,
|
|
2859
2935
|
|
|
2936
|
+
'u_FlatBar': `FlatBar`,
|
|
2937
|
+
|
|
2860
2938
|
'u_Visible': `Visible`,
|
|
2861
2939
|
'u_Hidden': `Hidden`,
|
|
2862
2940
|
'u_Hidden+': `Hidden+`,
|