danoniplus 27.4.0 → 27.6.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/danoni/danoni1.html +2 -2
- package/danoni/danoni3.html +24 -4
- package/danoni/danoni4_skin.html +3 -3
- package/danoni/danoniA.txt +13 -5
- package/js/danoni_main.js +91 -57
- package/js/lib/danoni_constants.js +6 -1
- package/package.json +1 -1
package/danoni/danoni1.html
CHANGED
|
@@ -38,8 +38,8 @@ a:hover { color:#FF9900; text-decoration: underline; }
|
|
|
38
38
|
<input type="hidden" name="dos" id="dos" value='
|
|
39
39
|
|musicTitle=Stormy wing<br>2019.3.23,SHIKI,http://shiki2.sakura.ne.jp/|
|
|
40
40
|
|difData=7,Normal,3.5,70,2,7$6,Extra,3.5,70,2,7$8|
|
|
41
|
-
|setColor
|
|
42
|
-
|frzColor
|
|
41
|
+
|setColor=#99ffff,#CCCC33,#FFFFFF,#ff0066|
|
|
42
|
+
|frzColor=#66ffff,#6666ff,#ffff66,#ffff66|
|
|
43
43
|
|startFrame=0|blankFrame=157|
|
|
44
44
|
|musicUrl=nosound.mp3|
|
|
45
45
|
|blankFrame=200|
|
package/danoni/danoni3.html
CHANGED
|
@@ -35,11 +35,31 @@ a:hover { color:#FF9900; text-decoration: underline; }
|
|
|
35
35
|
<input type="hidden" name="dos" id="dos" value='
|
|
36
36
|
|
|
37
37
|
|musicTitle=twinkle star,えむ,http://em--mk.xrea.bz/index.htm|
|
|
38
|
-
|difData=
|
|
38
|
+
|difData=
|
|
39
|
+
11,Normal,3.5,x,2,7
|
|
40
|
+
11,Hard,3.5,75,2,7
|
|
41
|
+
12,Hard
|
|
42
|
+
5,Easy,1.5,75,1,5
|
|
43
|
+
7,Normal,2,5,1,5
|
|
44
|
+
7i,易しい,2,5,1,5
|
|
45
|
+
8,Normal+,2.75,75,1,5
|
|
46
|
+
9A,SemiHard,2.75,75,1,5
|
|
47
|
+
9B,Hard,2.75,75,1,5
|
|
48
|
+
9i,Enjoyable,2.75,75,1,5
|
|
49
|
+
11,Normal,3.5,75,1,5
|
|
50
|
+
11L,Normal+,3.25,75,1,5
|
|
51
|
+
12,Hard,3.75,75,1,5
|
|
52
|
+
14,Hard+,4,75,1,5
|
|
53
|
+
17,Very Hard,4.5,75,1,5
|
|
54
|
+
11i,Very Hard,4.5,75,1,5
|
|
55
|
+
14i,Very Hard,4.5,75,1,5
|
|
56
|
+
16i,Extra,4.5,75,1,5
|
|
57
|
+
15B,Very Hard,4.5,75,1,5
|
|
58
|
+
13,Hard,4.5,75,1,5
|
|
59
|
+
|
|
|
39
60
|
|difSelectorUse=true|
|
|
40
|
-
|setColor
|
|
41
|
-
|frzColor
|
|
42
|
-
|scoreLabel=11-070-1,11-070-2|
|
|
61
|
+
|setColor=#cc99ff,#ffccff,#ffffff,#ffff99,#ff9966|
|
|
62
|
+
|frzColor=#00ffff,#6600ff,#ffff66,#ffff66|
|
|
43
63
|
|dummyId=2$1$5|
|
|
44
64
|
|startFrame=0|blankFrame=270|
|
|
45
65
|
|musicUrl=nosound.mp3|
|
package/danoni/danoni4_skin.html
CHANGED
|
@@ -41,9 +41,9 @@ a:hover { color:#FF9900; text-decoration: underline; }
|
|
|
41
41
|
|
|
42
42
|
|musicTitle=dreamin' -happycore version-,AOiRO_Manbow,https://cw7.sakura.ne.jp/rdart/?artistId=37|
|
|
43
43
|
|difData=7,tickle,3$7,イズデラ,3$7i,t24,3$7,Air,3$7,MFV2,3$7i,ch3cooh,3$7,メイヂ,3$7,T/R,3$7,max,3|
|
|
44
|
-
|setColor2
|
|
45
|
-
|setColor
|
|
46
|
-
|frzColor
|
|
44
|
+
|setColor2=#ffff66,#cccc99,#ffffff,#ffff99,#ff9966|
|
|
45
|
+
|setColor=#999900,#666600,#000000,#ffff99,#ff9966|
|
|
46
|
+
|frzColor=#00ffff,#6600ff|
|
|
47
47
|
|startFrame=0|blankFrame=142|
|
|
48
48
|
|musicUrl=nosound.mp3|skinType=skyblue|settingType=(..)tickle|
|
|
49
49
|
|titlesize=38|
|
package/danoni/danoniA.txt
CHANGED
|
@@ -3,19 +3,27 @@ function externalDosInit() {
|
|
|
3
3
|
g_externalDos = `
|
|
4
4
|
|
|
5
5
|
|musicTitle=Combative Instinct�U,Trial,http://trialmsc.com/|
|
|
6
|
-
|difData=
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
|difData=
|
|
7
|
+
14,Easy,3.5,x,10,5,50
|
|
8
|
+
14,Normal,2.5,70,2,5
|
|
9
|
+
9A,Normal,2,70,3,7
|
|
10
|
+
7i
|
|
11
|
+
5,Hard,2.5,70,2,5
|
|
12
|
+
11L,Hard,3.5,70,2,5
|
|
13
|
+
12,Hard,3.5,80,2,5
|
|
14
|
+
|
|
|
15
|
+
|setColor=#6666ff,#99ffff,#ffffff,#ffff99,#ff9966|
|
|
16
|
+
|frzColor=#00ffff,#6600ff,#ffff66,#ffff66|
|
|
9
17
|
|scoreLabel=283-1,283-2|
|
|
10
18
|
|startFrame=0|fadeFrame=5847$5847|endFrame=$7200$3600|
|
|
11
19
|
|gaugeNormal=$80,1,7,40|
|
|
12
20
|
|gaugeEasy=$50,3,5,40$50,3,5,40$$70,3,5,10$60,3,9,35$90,4,9,35|
|
|
13
21
|
|musicUrl=nosound.mp3|
|
|
14
22
|
|
|
15
|
-
|oni_data=2474,3350,3540,4108,5648|left_data=248,437,2190,2521,2545,2569,3374,3398,4274|leftdia_data=627,1764,2711,2735,2758,3232,3469,3492,4321,4369,5269,5292,5316|down_data=342,532,1953,2048,2237,2616,2640,2664,3327,3398,4132,4203,4250|space_data=674,769,1811,3256,3516,5364,5387,5411|up_data=295,485,2332,3303,3445,4156,4227,4298|rightdia_data=721,1858,2142,2379,3185,3492,4416,5340,5435|right_data=390,579,3279,3421,3445,4179|sleftdia_data=1006,1385,2853,3658,3706,3990,4582,4866,5553|sleft_data=2995,3114,3611,4487,4677,5458|sdown_data=816,864,1100,1479,2900,3161,3587,3729,3824,4085,4511,4606,4819,5482|sup_data=1053,1432,3042,3753,3848,4653,5506|sright_data=911,2829,2948,3137,3564,3895,4464,4842,5529|srightdia_data=1195,1290,1574,1669,3090,3942,4037,4061,4700,4748,4795,5624|foni_data=|frzLeft_data=|frzLdia_data=|frzDown_data=|frzSpace_data=|frzUp_data=|frzRdia_data=4890,4985|frzRight_data=|sfrzLdia_data=|sfrzLeft_data=|sfrzDown_data=2806,2829|sfrzUp_data=|sfrzRight_data=|sfrzRdia_data=2427,2450|speed_change=400,0.25|color_data=200,30,
|
|
23
|
+
|oni_data=2474,3350,3540,4108,5648|left_data=248,437,2190,2521,2545,2569,3374,3398,4274|leftdia_data=627,1764,2711,2735,2758,3232,3469,3492,4321,4369,5269,5292,5316|down_data=342,532,1953,2048,2237,2616,2640,2664,3327,3398,4132,4203,4250|space_data=674,769,1811,3256,3516,5364,5387,5411|up_data=295,485,2332,3303,3445,4156,4227,4298|rightdia_data=721,1858,2142,2379,3185,3492,4416,5340,5435|right_data=390,579,3279,3421,3445,4179|sleftdia_data=1006,1385,2853,3658,3706,3990,4582,4866,5553|sleft_data=2995,3114,3611,4487,4677,5458|sdown_data=816,864,1100,1479,2900,3161,3587,3729,3824,4085,4511,4606,4819,5482|sup_data=1053,1432,3042,3753,3848,4653,5506|sright_data=911,2829,2948,3137,3564,3895,4464,4842,5529|srightdia_data=1195,1290,1574,1669,3090,3942,4037,4061,4700,4748,4795,5624|foni_data=|frzLeft_data=|frzLdia_data=|frzDown_data=|frzSpace_data=|frzUp_data=|frzRdia_data=4890,4985|frzRight_data=|sfrzLdia_data=|sfrzLeft_data=|sfrzDown_data=2806,2829|sfrzUp_data=|sfrzRight_data=|sfrzRdia_data=2427,2450|speed_change=400,0.25|color_data=200,30,#00ffcc,200,31,#339999,200,34,#cc99ff,200,35,#9966ff||tuning=�e�B�b�N��,http://cw7.sakura.ne.jp/|
|
|
16
24
|
|boost_data=200,3|
|
|
17
25
|
|
|
18
|
-
|oni2_data=1029,1077,1124,1171,1219,1266,1314,1361,1408,1456,1503,1550,1598,1645,1740,2829,3350,3635,3729,4108,4392,4487,5648|left2_data=248,437,816,864,3232,3410,3469,4132,4369,4440,4464,4511,5056,5506|leftdia2_data=627,650,698,1764,1811,1835,1882,2048,2214,2261,2320,2912,3220,3445,3540,4179,4392,4606,4629,4653,4677,4842,4914,4937,4961,4985,5008,5032,5387,5423,5612|down2_data=342,532,792,828,1953,2000,2016,2367,3196,3244,3398,3481,3540,3658,3682,3694,3706,3729,4144,4345,4381,4452,4523,4546,4570,4594,5079,5103,5127,5150,5174,5198,5221,5292,5328,5517|space2_data=721,745,1006,1053,1148,1195,1242,1258,1385,1432,1479,1527,1574,2119,2225,2308,3433,3457,3564,3587,3599,3611,3635,4191,4404,4606,5245,5375,5411,5482|up2_data=295,485,864,1085,1171,1274,1456,1562,1621,1637,1977,2032,2142,2202,2237,2261,2356,3208,3256,3386,3492,3516,4156,4357,4511,4535,4558,4582,5281,5316,5340,5435,5553,5577,5589|rightdia2_data=674,769,1069,1160,1444,1539,1653,1787,1858,1906,2119,2308,2900,3185,3421,4203,4617,4641,4665,4689,4854,5364,5399,5458,5494,5600|right2_data=390,579,840,1100,1183,1467,1550,2142,2190,2237,3374,3504,5269,5304,5340,5529|sleftdia2_data=1006,1053,1100,1148,1195,1242,1290,1337,2166,2332,2486,2711,2948,3042,3090,3339,3942,4085,4306,4487,4748,4866|sleft2_data=887,982,1385,1432,1479,1527,1574,1621,1716,1929,2095,2296,2498,2545,2687,2746,2806,2889,2983,3019,3114,3753,3777,3789,3824,3931,3990,4061,4250,4321,4700,4736,4760|sdown2_data=911,946,1314,1669,1692,2071,2285,2557,2600,2735,2770,2794,2853,2971,3031,3125,3315,3812,3836,3895,3978,4227,4321,4416,4724,4795,4819|sup2_data=935,958,2095,2474,2569,2585,3007,3848,3871,3883,4712,4807,4831|sright2_data=887,982,1290,1692,1835,2071,2285,2379,2395,2510,2758,2924,3137,3800,3919,3966,4073,4239,4314,4416,4700,4771|srightdia2_data=2411,2521,2782,2877,2995,3161,3279,3303,3327,3350,4014,4037,4274,4298,4748,4866,5624|foni2_data=|frzLeft2_data=|frzLdia2_data=|frzDown2_data=|frzSpace2_data=|frzUp2_data=|frzRdia2_data=|frzRight2_data=|sfrzLdia2_data=|sfrzLeft2_data=|sfrzDown2_data=2427,2450,2652,2669|sfrzUp2_data=4890,4985|sfrzRight2_data=2616,2634|sfrzRdia2_data=|speed2_change=|boost2_data=|color2_data=200,30,
|
|
26
|
+
|oni2_data=1029,1077,1124,1171,1219,1266,1314,1361,1408,1456,1503,1550,1598,1645,1740,2829,3350,3635,3729,4108,4392,4487,5648|left2_data=248,437,816,864,3232,3410,3469,4132,4369,4440,4464,4511,5056,5506|leftdia2_data=627,650,698,1764,1811,1835,1882,2048,2214,2261,2320,2912,3220,3445,3540,4179,4392,4606,4629,4653,4677,4842,4914,4937,4961,4985,5008,5032,5387,5423,5612|down2_data=342,532,792,828,1953,2000,2016,2367,3196,3244,3398,3481,3540,3658,3682,3694,3706,3729,4144,4345,4381,4452,4523,4546,4570,4594,5079,5103,5127,5150,5174,5198,5221,5292,5328,5517|space2_data=721,745,1006,1053,1148,1195,1242,1258,1385,1432,1479,1527,1574,2119,2225,2308,3433,3457,3564,3587,3599,3611,3635,4191,4404,4606,5245,5375,5411,5482|up2_data=295,485,864,1085,1171,1274,1456,1562,1621,1637,1977,2032,2142,2202,2237,2261,2356,3208,3256,3386,3492,3516,4156,4357,4511,4535,4558,4582,5281,5316,5340,5435,5553,5577,5589|rightdia2_data=674,769,1069,1160,1444,1539,1653,1787,1858,1906,2119,2308,2900,3185,3421,4203,4617,4641,4665,4689,4854,5364,5399,5458,5494,5600|right2_data=390,579,840,1100,1183,1467,1550,2142,2190,2237,3374,3504,5269,5304,5340,5529|sleftdia2_data=1006,1053,1100,1148,1195,1242,1290,1337,2166,2332,2486,2711,2948,3042,3090,3339,3942,4085,4306,4487,4748,4866|sleft2_data=887,982,1385,1432,1479,1527,1574,1621,1716,1929,2095,2296,2498,2545,2687,2746,2806,2889,2983,3019,3114,3753,3777,3789,3824,3931,3990,4061,4250,4321,4700,4736,4760|sdown2_data=911,946,1314,1669,1692,2071,2285,2557,2600,2735,2770,2794,2853,2971,3031,3125,3315,3812,3836,3895,3978,4227,4321,4416,4724,4795,4819|sup2_data=935,958,2095,2474,2569,2585,3007,3848,3871,3883,4712,4807,4831|sright2_data=887,982,1290,1692,1835,2071,2285,2379,2395,2510,2758,2924,3137,3800,3919,3966,4073,4239,4314,4416,4700,4771|srightdia2_data=2411,2521,2782,2877,2995,3161,3279,3303,3327,3350,4014,4037,4274,4298,4748,4866,5624|foni2_data=|frzLeft2_data=|frzLdia2_data=|frzDown2_data=|frzSpace2_data=|frzUp2_data=|frzRdia2_data=|frzRight2_data=|sfrzLdia2_data=|sfrzLeft2_data=|sfrzDown2_data=2427,2450,2652,2669|sfrzUp2_data=4890,4985|sfrzRight2_data=2616,2634|sfrzRdia2_data=|speed2_change=|boost2_data=|color2_data=200,30,#00ffcc,200,31,#339999,200,34,#cc99ff,200,35,#9966ff|
|
|
19
27
|
|
|
20
28
|
|
|
21
29
|
`;
|
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 : 2022/
|
|
7
|
+
* Revised : 2022/06/07
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 27.
|
|
12
|
-
const g_revisedDate = `2022/
|
|
11
|
+
const g_version = `Ver 27.6.0`;
|
|
12
|
+
const g_revisedDate = `2022/06/07`;
|
|
13
13
|
const g_alphaVersion = ``;
|
|
14
14
|
|
|
15
15
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
@@ -41,11 +41,11 @@ let g_localVersion2 = ``;
|
|
|
41
41
|
*/
|
|
42
42
|
const current = _ => {
|
|
43
43
|
if (document.currentScript) {
|
|
44
|
-
return
|
|
44
|
+
return document.currentScript.src;
|
|
45
45
|
}
|
|
46
|
-
const scripts = document.getElementsByTagName(`script`);
|
|
47
|
-
const targetScript = scripts
|
|
48
|
-
return
|
|
46
|
+
const scripts = Array.from(document.getElementsByTagName(`script`));
|
|
47
|
+
const targetScript = scripts.find(file => file.src.endsWith(`danoni_main.js`));
|
|
48
|
+
return targetScript.src;
|
|
49
49
|
};
|
|
50
50
|
const g_rootPath = current().match(/(^.*\/)/)[0];
|
|
51
51
|
const g_remoteFlg = g_rootPath.match(`^https://cwtickle.github.io/danoniplus/`) !== null;
|
|
@@ -342,6 +342,15 @@ const hasArrayList = (_data, _length = 1) => _data !== undefined && _data.length
|
|
|
342
342
|
*/
|
|
343
343
|
const splitLF = _str => _str.split(`\r`).join(`\n`).split(`\n`);
|
|
344
344
|
|
|
345
|
+
/**
|
|
346
|
+
* 改行コード区切りを本来の区切り文字に変換して配列展開
|
|
347
|
+
* (改行区切りで間が空行だった場合は無効化)
|
|
348
|
+
* @param {string} _str
|
|
349
|
+
* @param {string} _delim
|
|
350
|
+
* @returns
|
|
351
|
+
*/
|
|
352
|
+
const splitLF2 = (_str, _delim = `$`) => splitLF(_str).filter(val => val !== ``).join(_delim).split(_delim);
|
|
353
|
+
|
|
345
354
|
/**
|
|
346
355
|
* 重複を排除した配列の生成
|
|
347
356
|
* @param {array} _array1
|
|
@@ -456,8 +465,12 @@ const blockCode = _setCode => !C_BLOCK_KEYS.map(key => g_kCdN[key]).includes(_se
|
|
|
456
465
|
* @param {object} _evt
|
|
457
466
|
* @param {string} _displayName
|
|
458
467
|
* @param {function} _func
|
|
468
|
+
* @param {boolean} _dfEvtFlg
|
|
459
469
|
*/
|
|
460
|
-
const commonKeyDown = (_evt, _displayName, _func = _code => { }) => {
|
|
470
|
+
const commonKeyDown = (_evt, _displayName, _func = _code => { }, _dfEvtFlg) => {
|
|
471
|
+
if (!_dfEvtFlg) {
|
|
472
|
+
_evt.preventDefault();
|
|
473
|
+
}
|
|
461
474
|
const setCode = transCode(_evt.code);
|
|
462
475
|
if (_evt.repeat && (g_unrepeatObj.page.includes(_displayName) || g_unrepeatObj.key.includes(setCode))) {
|
|
463
476
|
return blockCode(setCode);
|
|
@@ -533,12 +546,12 @@ const createScTextCommon = _displayName => {
|
|
|
533
546
|
* @param {string} _displayName
|
|
534
547
|
* @param {function} _func
|
|
535
548
|
*/
|
|
536
|
-
const setShortcutEvent = (_displayName, _func = _ => true,
|
|
537
|
-
if (
|
|
549
|
+
const setShortcutEvent = (_displayName, _func = _ => true, { displayFlg = true, dfEvtFlg = false } = {}) => {
|
|
550
|
+
if (displayFlg) {
|
|
538
551
|
createScTextCommon(_displayName);
|
|
539
552
|
}
|
|
540
553
|
const evList = _ => {
|
|
541
|
-
document.onkeydown = evt => commonKeyDown(evt, _displayName, _func);
|
|
554
|
+
document.onkeydown = evt => commonKeyDown(evt, _displayName, _func, dfEvtFlg);
|
|
542
555
|
document.onkeyup = evt => commonKeyUp(evt);
|
|
543
556
|
};
|
|
544
557
|
if (g_initialFlg && g_btnWaitFrame[_displayName].initial) {
|
|
@@ -1239,7 +1252,10 @@ const getTitleDivLabel = (_id, _titlename, _x, _y, ..._classes) =>
|
|
|
1239
1252
|
*/
|
|
1240
1253
|
const resetKeyControl = _ => {
|
|
1241
1254
|
document.onkeyup = _ => { };
|
|
1242
|
-
document.onkeydown = evt =>
|
|
1255
|
+
document.onkeydown = evt => {
|
|
1256
|
+
evt.preventDefault();
|
|
1257
|
+
return blockCode(transCode(evt.code));
|
|
1258
|
+
};
|
|
1243
1259
|
g_inputKeyBuffer = {};
|
|
1244
1260
|
};
|
|
1245
1261
|
|
|
@@ -2407,7 +2423,7 @@ const headerConvert = _dosObj => {
|
|
|
2407
2423
|
if (!g_isFile) {
|
|
2408
2424
|
let tmpImgTypes = [];
|
|
2409
2425
|
if (hasVal(_dosObj.imgType)) {
|
|
2410
|
-
tmpImgTypes = _dosObj.imgType
|
|
2426
|
+
tmpImgTypes = splitLF2(_dosObj.imgType);
|
|
2411
2427
|
} else if (g_presetObj.imageSets !== undefined) {
|
|
2412
2428
|
tmpImgTypes = g_presetObj.imageSets.concat();
|
|
2413
2429
|
}
|
|
@@ -2459,7 +2475,7 @@ const headerConvert = _dosObj => {
|
|
|
2459
2475
|
obj.musicNos = [];
|
|
2460
2476
|
|
|
2461
2477
|
if (hasVal(_dosObj.musicTitle)) {
|
|
2462
|
-
const musicData = _dosObj.musicTitle
|
|
2478
|
+
const musicData = splitLF2(_dosObj.musicTitle);
|
|
2463
2479
|
|
|
2464
2480
|
if (hasVal(_dosObj.musicNo)) {
|
|
2465
2481
|
obj.musicNos = _dosObj.musicNo.split(`$`);
|
|
@@ -2527,7 +2543,7 @@ const headerConvert = _dosObj => {
|
|
|
2527
2543
|
|
|
2528
2544
|
// 譜面情報
|
|
2529
2545
|
if (hasVal(_dosObj.difData)) {
|
|
2530
|
-
const difs = _dosObj.difData
|
|
2546
|
+
const difs = splitLF2(_dosObj.difData);
|
|
2531
2547
|
const difpos = {
|
|
2532
2548
|
Key: 0, Name: 1, Speed: 2, Border: 3, Recovery: 4, Damage: 5, Init: 6,
|
|
2533
2549
|
};
|
|
@@ -2553,7 +2569,7 @@ const headerConvert = _dosObj => {
|
|
|
2553
2569
|
obj.lifeInits.push(lifeData(`Init`, 25));
|
|
2554
2570
|
|
|
2555
2571
|
// キー数
|
|
2556
|
-
const keyLabel = difDetails[difpos.Key]
|
|
2572
|
+
const keyLabel = difDetails[difpos.Key] || `7`;
|
|
2557
2573
|
obj.keyLabels.push(g_keyObj.keyTransPattern[keyLabel] ?? keyLabel);
|
|
2558
2574
|
|
|
2559
2575
|
// 譜面名、制作者名
|
|
@@ -2733,7 +2749,7 @@ const headerConvert = _dosObj => {
|
|
|
2733
2749
|
|
|
2734
2750
|
// 楽曲URL
|
|
2735
2751
|
if (hasVal(_dosObj.musicUrl)) {
|
|
2736
|
-
obj.musicUrls = _dosObj.musicUrl
|
|
2752
|
+
obj.musicUrls = splitLF2(_dosObj.musicUrl);
|
|
2737
2753
|
} else {
|
|
2738
2754
|
makeWarningWindow(g_msgInfoObj.E_0031);
|
|
2739
2755
|
}
|
|
@@ -3058,7 +3074,7 @@ const resetBaseColorList = (_baseObj, _dosObj, { scoreId = `` } = {}) => {
|
|
|
3058
3074
|
});
|
|
3059
3075
|
|
|
3060
3076
|
// フリーズアロー色
|
|
3061
|
-
const tmpFrzColors = (frzColorTxt !== undefined ? frzColorTxt
|
|
3077
|
+
const tmpFrzColors = (frzColorTxt !== undefined ? splitLF2(frzColorTxt) : []);
|
|
3062
3078
|
const firstFrzColors = (tmpFrzColors[0] !== undefined ? tmpFrzColors[0].split(`,`) : []);
|
|
3063
3079
|
|
|
3064
3080
|
for (let j = 0; j < _baseObj.setColorInit.length; j++) {
|
|
@@ -3266,7 +3282,7 @@ const getGaugeSetting = (_dosObj, _name, _difLength, { scoreId = 0 } = {}) => {
|
|
|
3266
3282
|
if (gaugeUpdateFlg) {
|
|
3267
3283
|
gaugeCreateFlg = setGaugeDetails(scoreId, _dosObj[`gauge${_name}`].split(`,`));
|
|
3268
3284
|
} else {
|
|
3269
|
-
const gauges = _dosObj[`gauge${_name}`]
|
|
3285
|
+
const gauges = splitLF2(_dosObj[`gauge${_name}`]);
|
|
3270
3286
|
const gHeaderLen = gauges.length;
|
|
3271
3287
|
for (let j = 0; j < gHeaderLen; j++) {
|
|
3272
3288
|
gaugeCreateFlg = setGaugeDetails(j, getGaugeDetailList(j, gauges[j].split(`,`)));
|
|
@@ -3333,17 +3349,18 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3333
3349
|
const newKeyMultiParam = (_key, _name, _convFunc, { errCd = ``, baseCopyFlg = false, loopFunc = _ => true } = {}) => {
|
|
3334
3350
|
let tmpMinPatterns = 1;
|
|
3335
3351
|
const keyheader = _name + _key;
|
|
3352
|
+
const dfPtn = setIntVal(g_keyObj.dfPtnNum);
|
|
3336
3353
|
if (hasVal(_dosObj[keyheader])) {
|
|
3337
|
-
const tmpArray = _dosObj[keyheader]
|
|
3354
|
+
const tmpArray = splitLF2(_dosObj[keyheader]);
|
|
3338
3355
|
tmpMinPatterns = tmpArray.length;
|
|
3339
3356
|
for (let k = 0; k < tmpMinPatterns; k++) {
|
|
3340
|
-
if (existParam(tmpArray[k], `${keyheader}_${k}`)) {
|
|
3357
|
+
if (existParam(tmpArray[k], `${keyheader}_${k + dfPtn}`)) {
|
|
3341
3358
|
continue;
|
|
3342
3359
|
}
|
|
3343
|
-
g_keyObj[`${keyheader}_${k}`] = g_keyObj[`${_name}${tmpArray[k]}`] !== undefined ?
|
|
3360
|
+
g_keyObj[`${keyheader}_${k + dfPtn}`] = g_keyObj[`${_name}${tmpArray[k]}`] !== undefined ?
|
|
3344
3361
|
copyArray2d(g_keyObj[`${_name}${tmpArray[k]}`]) : tmpArray[k].split(`,`).map(n => _convFunc(n));
|
|
3345
3362
|
if (baseCopyFlg) {
|
|
3346
|
-
g_keyObj[`${keyheader}_${k}d`] = copyArray2d(g_keyObj[`${keyheader}_${k}`]);
|
|
3363
|
+
g_keyObj[`${keyheader}_${k + dfPtn}d`] = copyArray2d(g_keyObj[`${keyheader}_${k + dfPtn}`]);
|
|
3347
3364
|
}
|
|
3348
3365
|
loopFunc(k, keyheader);
|
|
3349
3366
|
}
|
|
@@ -3361,10 +3378,11 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3361
3378
|
*/
|
|
3362
3379
|
const newKeySingleParam = (_key, _name, _type) => {
|
|
3363
3380
|
const keyheader = _name + _key;
|
|
3381
|
+
const dfPtn = setIntVal(g_keyObj.dfPtnNum);
|
|
3364
3382
|
if (_dosObj[keyheader] !== undefined) {
|
|
3365
3383
|
const tmps = _dosObj[keyheader].split(`$`);
|
|
3366
3384
|
for (let k = 0; k < tmps.length; k++) {
|
|
3367
|
-
g_keyObj[`${keyheader}_${k}`] = setVal(g_keyObj[`${_name}${tmps[k]}`], setVal(tmps[k], ``, _type));
|
|
3385
|
+
g_keyObj[`${keyheader}_${k + dfPtn}`] = setVal(g_keyObj[`${_name}${tmps[k]}`], setVal(tmps[k], ``, _type));
|
|
3368
3386
|
}
|
|
3369
3387
|
}
|
|
3370
3388
|
};
|
|
@@ -3379,11 +3397,12 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3379
3397
|
*/
|
|
3380
3398
|
const newKeyPairParam = (_key, _name, _pairName, _defaultName = ``, _defaultVal = 0) => {
|
|
3381
3399
|
const keyheader = _name + _key;
|
|
3400
|
+
const dfPtn = setIntVal(g_keyObj.dfPtnNum);
|
|
3382
3401
|
|
|
3383
3402
|
if (_dosObj[keyheader] !== undefined) {
|
|
3384
|
-
const tmpParams = _dosObj[keyheader]
|
|
3403
|
+
const tmpParams = splitLF2(_dosObj[keyheader]);
|
|
3385
3404
|
for (let k = 0; k < tmpParams.length; k++) {
|
|
3386
|
-
const pairName = `${_pairName}${_key}_${k}`;
|
|
3405
|
+
const pairName = `${_pairName}${_key}_${k + dfPtn}`;
|
|
3387
3406
|
if (!hasVal(tmpParams[k])) {
|
|
3388
3407
|
continue;
|
|
3389
3408
|
}
|
|
@@ -3392,7 +3411,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3392
3411
|
Object.assign(g_keyObj[pairName], g_keyObj[`${_pairName}${tmpParams[k]}`]);
|
|
3393
3412
|
} else {
|
|
3394
3413
|
if (_defaultName !== ``) {
|
|
3395
|
-
g_keyObj[pairName][_defaultName] = [...Array(g_keyObj[`color${_key}_${k}`].length)].fill(_defaultVal);
|
|
3414
|
+
g_keyObj[pairName][_defaultName] = [...Array(g_keyObj[`color${_key}_${k + dfPtn}`].length)].fill(_defaultVal);
|
|
3396
3415
|
}
|
|
3397
3416
|
tmpParams[k].split(`/`).forEach(pairs => {
|
|
3398
3417
|
const tmpParamPair = pairs.split(`::`);
|
|
@@ -3409,18 +3428,31 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3409
3428
|
* @param {string} _header
|
|
3410
3429
|
* @returns
|
|
3411
3430
|
*/
|
|
3412
|
-
const copyChildArray = (_k, _header) =>
|
|
3431
|
+
const copyChildArray = (_k, _header) =>
|
|
3432
|
+
g_keyObj[`${_header}_${_k + g_keyObj.dfPtnNum}_0`] = copyArray2d(g_keyObj[`${_header}_${_k + g_keyObj.dfPtnNum}`]);
|
|
3413
3433
|
|
|
3414
3434
|
// 対象キー毎に処理
|
|
3415
3435
|
keyExtraList.forEach(newKey => {
|
|
3416
3436
|
let tmpDivPtn = [];
|
|
3417
3437
|
let tmpMinPatterns = 1;
|
|
3438
|
+
g_keyObj.dfPtnNum = 0;
|
|
3439
|
+
|
|
3440
|
+
// キーパターンの追記 (appendX)
|
|
3441
|
+
if (setBoolVal(_dosObj[`append${newKey}`])) {
|
|
3442
|
+
for (let j = 0; ; j++) {
|
|
3443
|
+
if (g_keyObj[`color${newKey}_${j}`] === undefined) {
|
|
3444
|
+
break;
|
|
3445
|
+
}
|
|
3446
|
+
g_keyObj.dfPtnNum++;
|
|
3447
|
+
}
|
|
3448
|
+
}
|
|
3449
|
+
const dfPtnNum = g_keyObj.dfPtnNum;
|
|
3418
3450
|
|
|
3419
3451
|
// キーの名前 (keyNameX)
|
|
3420
3452
|
g_keyObj[`keyName${newKey}`] = _dosObj[`keyName${newKey}`] ?? newKey;
|
|
3421
3453
|
|
|
3422
3454
|
// キーの最小横幅 (minWidthX)
|
|
3423
|
-
g_keyObj[`minWidth${newKey}`] = _dosObj[`minWidth${newKey}`] ?? g_keyObj.minWidthDefault;
|
|
3455
|
+
g_keyObj[`minWidth${newKey}`] = _dosObj[`minWidth${newKey}`] ?? g_keyObj[`minWidth${newKey}`] ?? g_keyObj.minWidthDefault;
|
|
3424
3456
|
|
|
3425
3457
|
// 矢印色パターン (colorX_Y)
|
|
3426
3458
|
tmpMinPatterns = newKeyMultiParam(newKey, `color`, toNumber, {
|
|
@@ -3442,24 +3474,25 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3442
3474
|
const tmpDivs = _dosObj[`div${newKey}`].split(`$`);
|
|
3443
3475
|
for (let k = 0; k < tmpDivs.length; k++) {
|
|
3444
3476
|
tmpDivPtn = tmpDivs[k].split(`,`);
|
|
3477
|
+
const ptnName = `${newKey}_${k + dfPtnNum}`;
|
|
3445
3478
|
|
|
3446
3479
|
if (setIntVal(tmpDivPtn[0], -1) !== -1) {
|
|
3447
|
-
g_keyObj[`div${
|
|
3480
|
+
g_keyObj[`div${ptnName}`] = setIntVal(tmpDivPtn[0], g_keyObj[`chara${newKey}_0`].length);
|
|
3448
3481
|
} else if (g_keyObj[`div${tmpDivPtn[0]}`] !== undefined) {
|
|
3449
3482
|
// 既定キーパターンが指定された場合、存在すればその値を適用
|
|
3450
|
-
g_keyObj[`div${
|
|
3451
|
-
g_keyObj[`divMax${
|
|
3452
|
-
} else if (setIntVal(g_keyObj[`div${
|
|
3483
|
+
g_keyObj[`div${ptnName}`] = g_keyObj[`div${tmpDivPtn[0]}`];
|
|
3484
|
+
g_keyObj[`divMax${ptnName}`] = setIntVal(g_keyObj[`divMax${tmpDivPtn[0]}`], undefined);
|
|
3485
|
+
} else if (setIntVal(g_keyObj[`div${ptnName}`], -1) !== -1) {
|
|
3453
3486
|
// すでに定義済みの場合はスキップ
|
|
3454
3487
|
continue;
|
|
3455
3488
|
} else if (g_keyObj[`chara${newKey}_0`] !== undefined) {
|
|
3456
3489
|
// 特に指定が無い場合はcharaX_Yの配列長で決定
|
|
3457
|
-
g_keyObj[`div${
|
|
3490
|
+
g_keyObj[`div${ptnName}`] = g_keyObj[`chara${newKey}_0`].length;
|
|
3458
3491
|
}
|
|
3459
3492
|
|
|
3460
3493
|
// ステップゾーン位置の最終番号
|
|
3461
3494
|
if (tmpDivPtn.length > 1) {
|
|
3462
|
-
g_keyObj[`divMax${
|
|
3495
|
+
g_keyObj[`divMax${ptnName}`] = setVal(tmpDivPtn[1], -1, C_TYP_FLOAT);
|
|
3463
3496
|
}
|
|
3464
3497
|
}
|
|
3465
3498
|
}
|
|
@@ -3467,16 +3500,18 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3467
3500
|
// ステップゾーン位置 (posX_Y)
|
|
3468
3501
|
newKeyMultiParam(newKey, `pos`, toFloat, {
|
|
3469
3502
|
loopFunc: (k, keyheader) => {
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3503
|
+
const ptnName = `${newKey}_${k + dfPtnNum}`;
|
|
3504
|
+
if (g_keyObj[`divMax${ptnName}`] === undefined || g_keyObj[`divMax${ptnName}`] === -1) {
|
|
3505
|
+
const posLength = g_keyObj[`${keyheader}_${k + dfPtnNum}`].length;
|
|
3506
|
+
g_keyObj[`divMax${ptnName}`] = g_keyObj[`${keyheader}_${k + dfPtnNum}`][posLength - 1] + 1;
|
|
3473
3507
|
}
|
|
3474
3508
|
}
|
|
3475
3509
|
});
|
|
3476
3510
|
if (_dosObj[`pos${newKey}`] === undefined) {
|
|
3477
3511
|
for (let k = 0; k < tmpMinPatterns; k++) {
|
|
3478
|
-
|
|
3479
|
-
|
|
3512
|
+
const ptnName = `${newKey}_${k + dfPtnNum}`;
|
|
3513
|
+
if (g_keyObj[`color${ptnName}`] !== undefined) {
|
|
3514
|
+
g_keyObj[`pos${ptnName}`] = [...Array(g_keyObj[`color${ptnName}`].length).keys()].map(i => i);
|
|
3480
3515
|
}
|
|
3481
3516
|
}
|
|
3482
3517
|
}
|
|
@@ -3798,7 +3833,7 @@ const titleInit = _ => {
|
|
|
3798
3833
|
g_timeoutEvtTitleId = setTimeout(_ => flowTitleTimeline(), 1000 / g_fps);
|
|
3799
3834
|
|
|
3800
3835
|
// キー操作イベント(デフォルト)
|
|
3801
|
-
setShortcutEvent(g_currentPage);
|
|
3836
|
+
setShortcutEvent(g_currentPage, _ => true, { dfEvtFlg: true });
|
|
3802
3837
|
|
|
3803
3838
|
document.oncontextmenu = _ => true;
|
|
3804
3839
|
divRoot.oncontextmenu = _ => false;
|
|
@@ -3963,7 +3998,7 @@ const optionInit = _ => {
|
|
|
3963
3998
|
commonSettingBtn(`Display`);
|
|
3964
3999
|
|
|
3965
4000
|
// キー操作イベント(デフォルト)
|
|
3966
|
-
setShortcutEvent(g_currentPage);
|
|
4001
|
+
setShortcutEvent(g_currentPage, _ => true, { dfEvtFlg: true });
|
|
3967
4002
|
document.oncontextmenu = _ => true;
|
|
3968
4003
|
g_initialFlg = true;
|
|
3969
4004
|
|
|
@@ -4044,7 +4079,7 @@ const createOptionWindow = _sprite => {
|
|
|
4044
4079
|
deleteChildspriteAll(`difList`);
|
|
4045
4080
|
[`difList`, `difCover`, `btnDifU`, `btnDifD`].forEach(obj => optionsprite.removeChild(document.getElementById(obj)));
|
|
4046
4081
|
g_currentPage = `option`;
|
|
4047
|
-
setShortcutEvent(g_currentPage, _ => true, false);
|
|
4082
|
+
setShortcutEvent(g_currentPage, _ => true, { displayFlg: false, dfEvtFlg: true });
|
|
4048
4083
|
}
|
|
4049
4084
|
};
|
|
4050
4085
|
|
|
@@ -5520,17 +5555,16 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
5520
5555
|
*/
|
|
5521
5556
|
const changeKeyConfigColor = (_j, _k, _cssName) => {
|
|
5522
5557
|
const obj = document.querySelector(`#keycon${_j}_${_k}`);
|
|
5558
|
+
const resetClass = _className => {
|
|
5559
|
+
if (obj.classList.contains(_className)) {
|
|
5560
|
+
obj.classList.remove(_className);
|
|
5561
|
+
}
|
|
5562
|
+
};
|
|
5523
5563
|
|
|
5524
5564
|
// CSSクラスの除去
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
if (obj.classList.contains(g_cssObj.keyconfig_Defaultkey)) {
|
|
5529
|
-
obj.classList.remove(g_cssObj.keyconfig_Defaultkey);
|
|
5530
|
-
}
|
|
5531
|
-
if (obj.classList.contains(g_cssObj.title_base)) {
|
|
5532
|
-
obj.classList.remove(g_cssObj.title_base);
|
|
5533
|
-
}
|
|
5565
|
+
resetClass(g_cssObj.keyconfig_Changekey);
|
|
5566
|
+
resetClass(g_cssObj.keyconfig_Defaultkey);
|
|
5567
|
+
resetClass(g_cssObj.title_base);
|
|
5534
5568
|
|
|
5535
5569
|
// 指定されたCSSクラスを適用
|
|
5536
5570
|
obj.classList.add(_cssName);
|
|
@@ -6372,7 +6406,7 @@ const loadingScoreInit = async () => {
|
|
|
6372
6406
|
let arrivalFrame = getFirstArrivalFrame(firstFrame, speedOnFrame, motionOnFrame);
|
|
6373
6407
|
|
|
6374
6408
|
// キーパターン(デフォルト)に対応する矢印番号を格納
|
|
6375
|
-
|
|
6409
|
+
convertReplaceNums();
|
|
6376
6410
|
|
|
6377
6411
|
const setData = (_data, _minLength = 1) => {
|
|
6378
6412
|
return (hasArrayList(_data, _minLength) ? _data.concat() : []);
|
|
@@ -6474,7 +6508,7 @@ const loadingScoreInit = async () => {
|
|
|
6474
6508
|
const tempId = setInterval(() => {
|
|
6475
6509
|
const executeMain = _ => {
|
|
6476
6510
|
clearInterval(tempId);
|
|
6477
|
-
|
|
6511
|
+
mainInit();
|
|
6478
6512
|
}
|
|
6479
6513
|
if (g_audio.duration !== undefined) {
|
|
6480
6514
|
if (g_userAgent.indexOf(`firefox`) !== -1) {
|
|
@@ -7529,7 +7563,7 @@ const getFrzLength = (_speedOnFrame, _startFrame, _endFrame) => {
|
|
|
7529
7563
|
/**
|
|
7530
7564
|
* キーパターン(デフォルト)に対応する矢印番号を格納
|
|
7531
7565
|
*/
|
|
7532
|
-
const
|
|
7566
|
+
const convertReplaceNums = _ => {
|
|
7533
7567
|
const tkObj = getKeyInfo();
|
|
7534
7568
|
const baseCharas = g_keyObj[`chara${g_keyObj.currentKey}_0`];
|
|
7535
7569
|
const convCharas = g_keyObj[`chara${tkObj.keyCtrlPtn}`];
|
|
@@ -7857,7 +7891,7 @@ const setKeyCtrl = (_localStorage, _keyNum, _keyCtrlPtn) => {
|
|
|
7857
7891
|
/**
|
|
7858
7892
|
* メイン画面初期化
|
|
7859
7893
|
*/
|
|
7860
|
-
const
|
|
7894
|
+
const mainInit = _ => {
|
|
7861
7895
|
clearWindow(true, `Main`);
|
|
7862
7896
|
const divRoot = document.querySelector(`#divRoot`);
|
|
7863
7897
|
document.oncontextmenu = _ => false;
|
|
@@ -8437,7 +8471,7 @@ const MainInit = _ => {
|
|
|
8437
8471
|
|
|
8438
8472
|
/**
|
|
8439
8473
|
* 自動判定
|
|
8440
|
-
* ※
|
|
8474
|
+
* ※mainInit内部で指定必須(arrowSprite指定)
|
|
8441
8475
|
*
|
|
8442
8476
|
* @param _j 矢印位置
|
|
8443
8477
|
* @param _arrow 矢印(オブジェクト)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2022/
|
|
8
|
+
* Revised : 2022/06/07 (v27.6.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1412,6 +1412,7 @@ const g_keyObj = {
|
|
|
1412
1412
|
currentPtn: 0,
|
|
1413
1413
|
|
|
1414
1414
|
prevKey: `Dummy`,
|
|
1415
|
+
dfPtnNum: 0,
|
|
1415
1416
|
|
|
1416
1417
|
// キー別ヘッダー
|
|
1417
1418
|
// - 譜面データ中に出てくる矢印(ノーツ)の種類と順番(ステップゾーン表示順)を管理する。
|
|
@@ -3280,6 +3281,10 @@ const g_skinJsObj = {
|
|
|
3280
3281
|
result: [],
|
|
3281
3282
|
};
|
|
3282
3283
|
|
|
3284
|
+
/** 過去関数の互換 */
|
|
3285
|
+
const convertreplaceNums = _ => convertReplaceNums();
|
|
3286
|
+
const MainInit = _ => mainInit();
|
|
3287
|
+
|
|
3283
3288
|
/**
|
|
3284
3289
|
* 従来のカスタム関数をg_customJsObj, g_skinJsObjへ追加
|
|
3285
3290
|
* - customjsファイルを読み込んだ直後にこの関数を呼び出している
|