danoniplus 27.3.0 → 27.5.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.
@@ -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=0x99ffff,0xCCCC33,0xFFFFFF,0xff0066|
42
- |frzColor=0x66ffff,0x6666ff,0xffff66,0xffff66|
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|
@@ -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=11,Normal,3.5,x,2,7$11,Hard,3.5,75,2,7$12,Hard$5,Easy,1.5,75,1,5$7,Normal,2,5,1,5$7i,易しい,2,5,1,5$8,Normal+,2.75,75,1,5$9A,SemiHard,2.75,75,1,5$9B,Hard,2.75,75,1,5$9i,Enjoyable,2.75,75,1,5$11,Normal,3.5,75,1,5$11L,Normal+,3.25,75,1,5$12,Hard,3.75,75,1,5$14,Hard+,4,75,1,5$17,Very Hard,4.5,75,1,5$11i,Very Hard,4.5,75,1,5$14i,Very Hard,4.5,75,1,5$16i,Extra,4.5,75,1,5$15B,Very Hard,4.5,75,1,5$13,Hard,4.5,75,1,5|
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=0xcc99ff,0xffccff,0xffffff,0xffff99,0xff9966|
41
- |frzColor=0x00ffff,0x6600ff,0xffff66,0xffff66|
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|
@@ -41,9 +41,9 @@ a:hover { color:#FF9900; text-decoration: underline; }
41
41
 
42
42
  |musicTitle=dreamin&#39; -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=0xffff66,0xcccc99,0xffffff,0xffff99,0xff9966|
45
- |setColor=0x999900,0x666600,0x000000,0xffff99,0xff9966|
46
- |frzColor=0x00ffff,0x6600ff|
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|
@@ -3,19 +3,27 @@ function externalDosInit() {
3
3
  g_externalDos = `
4
4
 
5
5
  |musicTitle=Combative Instinct�U,Trial,http://trialmsc.com/|
6
- |difData=14,Easy,3.5,x,10,5,50$14,Normal,2.5,70,2,5$9A,Normal,2,70,3,7$7i$5,Hard,2.5,70,2,5$11L,Hard,3.5,70,2,5$12,Hard,3.5,80,2,5|
7
- |setColor=0x6666ff,0x99ffff,0xffffff,0xffff99,0xff9966|
8
- |frzColor=0x00ffff,0x6600ff,0xffff66,0xffff66|
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,0x00ffcc,200,31,0x339999,200,34,0xcc99ff,200,35,0x9966ff||tuning=�e�B�b�N��,http://cw7.sakura.ne.jp/|
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,0x00ffcc,200,31,0x339999,200,34,0xcc99ff,200,35,0x9966ff|
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/04/10
7
+ * Revised : 2022/05/21
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 27.3.0`;
12
- const g_revisedDate = `2022/04/10`;
11
+ const g_version = `Ver 27.5.0`;
12
+ const g_revisedDate = `2022/05/21`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -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
@@ -910,8 +919,9 @@ const createDescDiv = (_id, _str, _altId = _id) =>
910
919
  * @param {number} _y
911
920
  * @param {number} _width
912
921
  * @param {number} _height
922
+ * @param {array} _classes
913
923
  */
914
- const createDiv = (_id, _x, _y, _width, _height) => {
924
+ const createDiv = (_id, _x, _y, _width, _height, _classes = []) => {
915
925
  const div = document.createElement(`div`);
916
926
 
917
927
  div.id = _id;
@@ -921,6 +931,7 @@ const createDiv = (_id, _x, _y, _width, _height) => {
921
931
  style.width = `${_width}px`;
922
932
  style.height = `${_height}px`;
923
933
  style.position = `absolute`;
934
+ div.classList.add(..._classes);
924
935
  setUserSelect(style);
925
936
 
926
937
  return div;
@@ -948,8 +959,7 @@ const setUserSelect = (_style, _value = C_DIS_NONE) => {
948
959
  */
949
960
  const createDivCss2Label = (_id, _text, { x = 0, y = 0, w = C_LEN_SETLBL_WIDTH, h = C_LEN_SETLBL_HEIGHT,
950
961
  siz = C_SIZ_SETLBL, align = C_ALIGN_CENTER, ...rest } = {}, ..._classes) => {
951
- const div = createDiv(_id, x, y, w, h);
952
- div.classList.add(g_cssObj.title_base, ..._classes);
962
+ const div = createDiv(_id, x, y, w, h, [g_cssObj.title_base, ..._classes]);
953
963
 
954
964
  const style = div.style;
955
965
  style.fontSize = `${siz}px`;
@@ -1006,19 +1016,20 @@ const createColorPicker = (_parentObj, _id, _func, { x = 0, y = 0 } = {}) => {
1006
1016
  const createColorObject2 = (_id,
1007
1017
  { x = 0, y = 0, w = C_ARW_WIDTH, h = C_ARW_WIDTH, rotate = ``, styleName = ``, ...rest } = {}, ..._classes) => {
1008
1018
 
1009
- const div = createDiv(_id, x, y, w, h);
1010
- div.classList.add(..._classes);
1019
+ const div = createDiv(_id, x, y, w, h, _classes);
1011
1020
  const style = div.style;
1012
1021
 
1013
1022
  // 矢印・オブジェクト判定
1014
1023
  let charaStyle;
1015
1024
  if (isNaN(parseFloat(rotate))) {
1016
- charaStyle = `${rotate}${styleName}`;
1025
+ const objData = rotate.split(`:`);
1026
+ rotate = setVal(objData[1], 0, C_TYP_FLOAT);
1027
+ charaStyle = `${objData[0]}${styleName}`;
1017
1028
  } else {
1018
1029
  charaStyle = `arrow${styleName}`;
1019
- if (g_stateObj.rotateEnabled) {
1020
- style.transform = `rotate(${rotate}deg)`;
1021
- }
1030
+ }
1031
+ if (g_stateObj.rotateEnabled) {
1032
+ style.transform = `rotate(${rotate}deg)`;
1022
1033
  }
1023
1034
 
1024
1035
  style.maskImage = `url("${g_imgObj[charaStyle]}")`;
@@ -1045,8 +1056,7 @@ const createEmptySprite = (_parentObj, _newObjId, { x = 0, y = 0, w = g_sWidth,
1045
1056
  changeStyle(_newObjId, { x, y, w, h, title, ...rest });
1046
1057
  return document.getElementById(_newObjId);
1047
1058
  }
1048
- const div = createDiv(_newObjId, x, y, w, h);
1049
- div.classList.add(..._classes);
1059
+ const div = createDiv(_newObjId, x, y, w, h, _classes);
1050
1060
  div.title = title;
1051
1061
 
1052
1062
  const style = div.style;
@@ -1138,8 +1148,7 @@ const createCss2Button = (_id, _text, _func = _ => true, { x = 0, y = g_sHeight
1138
1148
  siz = C_LBL_BTNSIZE, align = C_ALIGN_CENTER, title = ``, groupName = g_currentPage, initDisabledFlg = true,
1139
1149
  resetFunc = _ => true, cxtFunc = _ => true, ...rest } = {}, ..._classes) => {
1140
1150
 
1141
- const div = createDiv(_id, x, y, w, h);
1142
- div.classList.add(`button_common`, ..._classes);
1151
+ const div = createDiv(_id, x, y, w, h, [`button_common`, ..._classes]);
1143
1152
  div.innerHTML = _text;
1144
1153
  div.title = title;
1145
1154
 
@@ -2407,7 +2416,7 @@ const headerConvert = _dosObj => {
2407
2416
  if (!g_isFile) {
2408
2417
  let tmpImgTypes = [];
2409
2418
  if (hasVal(_dosObj.imgType)) {
2410
- tmpImgTypes = _dosObj.imgType.split(`$`);
2419
+ tmpImgTypes = splitLF2(_dosObj.imgType);
2411
2420
  } else if (g_presetObj.imageSets !== undefined) {
2412
2421
  tmpImgTypes = g_presetObj.imageSets.concat();
2413
2422
  }
@@ -2459,7 +2468,7 @@ const headerConvert = _dosObj => {
2459
2468
  obj.musicNos = [];
2460
2469
 
2461
2470
  if (hasVal(_dosObj.musicTitle)) {
2462
- const musicData = _dosObj.musicTitle.split(`$`);
2471
+ const musicData = splitLF2(_dosObj.musicTitle);
2463
2472
 
2464
2473
  if (hasVal(_dosObj.musicNo)) {
2465
2474
  obj.musicNos = _dosObj.musicNo.split(`$`);
@@ -2527,7 +2536,7 @@ const headerConvert = _dosObj => {
2527
2536
 
2528
2537
  // 譜面情報
2529
2538
  if (hasVal(_dosObj.difData)) {
2530
- const difs = _dosObj.difData.split(`$`);
2539
+ const difs = splitLF2(_dosObj.difData);
2531
2540
  const difpos = {
2532
2541
  Key: 0, Name: 1, Speed: 2, Border: 3, Recovery: 4, Damage: 5, Init: 6,
2533
2542
  };
@@ -2553,7 +2562,7 @@ const headerConvert = _dosObj => {
2553
2562
  obj.lifeInits.push(lifeData(`Init`, 25));
2554
2563
 
2555
2564
  // キー数
2556
- const keyLabel = difDetails[difpos.Key] ?? `7`;
2565
+ const keyLabel = difDetails[difpos.Key] || `7`;
2557
2566
  obj.keyLabels.push(g_keyObj.keyTransPattern[keyLabel] ?? keyLabel);
2558
2567
 
2559
2568
  // 譜面名、制作者名
@@ -2733,7 +2742,7 @@ const headerConvert = _dosObj => {
2733
2742
 
2734
2743
  // 楽曲URL
2735
2744
  if (hasVal(_dosObj.musicUrl)) {
2736
- obj.musicUrls = _dosObj.musicUrl.split(`$`);
2745
+ obj.musicUrls = splitLF2(_dosObj.musicUrl);
2737
2746
  } else {
2738
2747
  makeWarningWindow(g_msgInfoObj.E_0031);
2739
2748
  }
@@ -3058,7 +3067,7 @@ const resetBaseColorList = (_baseObj, _dosObj, { scoreId = `` } = {}) => {
3058
3067
  });
3059
3068
 
3060
3069
  // フリーズアロー色
3061
- const tmpFrzColors = (frzColorTxt !== undefined ? frzColorTxt.split(`$`) : []);
3070
+ const tmpFrzColors = (frzColorTxt !== undefined ? splitLF2(frzColorTxt) : []);
3062
3071
  const firstFrzColors = (tmpFrzColors[0] !== undefined ? tmpFrzColors[0].split(`,`) : []);
3063
3072
 
3064
3073
  for (let j = 0; j < _baseObj.setColorInit.length; j++) {
@@ -3266,7 +3275,7 @@ const getGaugeSetting = (_dosObj, _name, _difLength, { scoreId = 0 } = {}) => {
3266
3275
  if (gaugeUpdateFlg) {
3267
3276
  gaugeCreateFlg = setGaugeDetails(scoreId, _dosObj[`gauge${_name}`].split(`,`));
3268
3277
  } else {
3269
- const gauges = _dosObj[`gauge${_name}`].split(`$`);
3278
+ const gauges = splitLF2(_dosObj[`gauge${_name}`]);
3270
3279
  const gHeaderLen = gauges.length;
3271
3280
  for (let j = 0; j < gHeaderLen; j++) {
3272
3281
  gaugeCreateFlg = setGaugeDetails(j, getGaugeDetailList(j, gauges[j].split(`,`)));
@@ -3334,7 +3343,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
3334
3343
  let tmpMinPatterns = 1;
3335
3344
  const keyheader = _name + _key;
3336
3345
  if (hasVal(_dosObj[keyheader])) {
3337
- const tmpArray = _dosObj[keyheader].split(`$`);
3346
+ const tmpArray = splitLF2(_dosObj[keyheader]);
3338
3347
  tmpMinPatterns = tmpArray.length;
3339
3348
  for (let k = 0; k < tmpMinPatterns; k++) {
3340
3349
  if (existParam(tmpArray[k], `${keyheader}_${k}`)) {
@@ -3381,7 +3390,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
3381
3390
  const keyheader = _name + _key;
3382
3391
 
3383
3392
  if (_dosObj[keyheader] !== undefined) {
3384
- const tmpParams = _dosObj[keyheader].split(`$`);
3393
+ const tmpParams = splitLF2(_dosObj[keyheader]);
3385
3394
  for (let k = 0; k < tmpParams.length; k++) {
3386
3395
  const pairName = `${_pairName}${_key}_${k}`;
3387
3396
  if (!hasVal(tmpParams[k])) {
@@ -5520,17 +5529,16 @@ const keyConfigInit = (_kcType = g_kcType) => {
5520
5529
  */
5521
5530
  const changeKeyConfigColor = (_j, _k, _cssName) => {
5522
5531
  const obj = document.querySelector(`#keycon${_j}_${_k}`);
5532
+ const resetClass = _className => {
5533
+ if (obj.classList.contains(_className)) {
5534
+ obj.classList.remove(_className);
5535
+ }
5536
+ };
5523
5537
 
5524
5538
  // CSSクラスの除去
5525
- if (obj.classList.contains(g_cssObj.keyconfig_Changekey)) {
5526
- obj.classList.remove(g_cssObj.keyconfig_Changekey);
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
- }
5539
+ resetClass(g_cssObj.keyconfig_Changekey);
5540
+ resetClass(g_cssObj.keyconfig_Defaultkey);
5541
+ resetClass(g_cssObj.title_base);
5534
5542
 
5535
5543
  // 指定されたCSSクラスを適用
5536
5544
  obj.classList.add(_cssName);
@@ -6372,7 +6380,7 @@ const loadingScoreInit = async () => {
6372
6380
  let arrivalFrame = getFirstArrivalFrame(firstFrame, speedOnFrame, motionOnFrame);
6373
6381
 
6374
6382
  // キーパターン(デフォルト)に対応する矢印番号を格納
6375
- convertreplaceNums();
6383
+ convertReplaceNums();
6376
6384
 
6377
6385
  const setData = (_data, _minLength = 1) => {
6378
6386
  return (hasArrayList(_data, _minLength) ? _data.concat() : []);
@@ -6474,7 +6482,7 @@ const loadingScoreInit = async () => {
6474
6482
  const tempId = setInterval(() => {
6475
6483
  const executeMain = _ => {
6476
6484
  clearInterval(tempId);
6477
- MainInit();
6485
+ mainInit();
6478
6486
  }
6479
6487
  if (g_audio.duration !== undefined) {
6480
6488
  if (g_userAgent.indexOf(`firefox`) !== -1) {
@@ -7529,7 +7537,7 @@ const getFrzLength = (_speedOnFrame, _startFrame, _endFrame) => {
7529
7537
  /**
7530
7538
  * キーパターン(デフォルト)に対応する矢印番号を格納
7531
7539
  */
7532
- const convertreplaceNums = _ => {
7540
+ const convertReplaceNums = _ => {
7533
7541
  const tkObj = getKeyInfo();
7534
7542
  const baseCharas = g_keyObj[`chara${g_keyObj.currentKey}_0`];
7535
7543
  const convCharas = g_keyObj[`chara${tkObj.keyCtrlPtn}`];
@@ -7857,7 +7865,7 @@ const setKeyCtrl = (_localStorage, _keyNum, _keyCtrlPtn) => {
7857
7865
  /**
7858
7866
  * メイン画面初期化
7859
7867
  */
7860
- const MainInit = _ => {
7868
+ const mainInit = _ => {
7861
7869
  clearWindow(true, `Main`);
7862
7870
  const divRoot = document.querySelector(`#divRoot`);
7863
7871
  document.oncontextmenu = _ => false;
@@ -8437,7 +8445,7 @@ const MainInit = _ => {
8437
8445
 
8438
8446
  /**
8439
8447
  * 自動判定
8440
- * ※MainInit内部で指定必須(arrowSprite指定)
8448
+ * ※mainInit内部で指定必須(arrowSprite指定)
8441
8449
  *
8442
8450
  * @param _j 矢印位置
8443
8451
  * @param _arrow 矢印(オブジェクト)
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2022/04/10 (v27.3.0)
8
+ * Revised : 2022/05/21 (v27.5.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -2485,11 +2485,19 @@ const g_keyObj = {
2485
2485
  'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2486
2486
  'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2487
2487
  },
2488
+ assistPos9A_4: {
2489
+ 'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2490
+ 'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2491
+ },
2488
2492
 
2489
2493
  assistPos11i_0: {
2490
2494
  'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2491
2495
  'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2492
2496
  },
2497
+ assistPos11i_1: {
2498
+ 'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2499
+ 'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2500
+ },
2493
2501
 
2494
2502
  assistPos17_0: {
2495
2503
  'Left': [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
@@ -3228,6 +3236,7 @@ const g_errMsgObj = {
3228
3236
  * - 挿入場所ごとに名前を分けて定義
3229
3237
  */
3230
3238
  const g_customJsObj = {
3239
+ preTitle: [],
3231
3240
  title: [],
3232
3241
  titleEnterFrame: [],
3233
3242
  option: [],
@@ -3271,6 +3280,10 @@ const g_skinJsObj = {
3271
3280
  result: [],
3272
3281
  };
3273
3282
 
3283
+ /** 過去関数の互換 */
3284
+ const convertreplaceNums = _ => convertReplaceNums();
3285
+ const MainInit = _ => mainInit();
3286
+
3274
3287
  /**
3275
3288
  * 従来のカスタム関数をg_customJsObj, g_skinJsObjへ追加
3276
3289
  * - customjsファイルを読み込んだ直後にこの関数を呼び出している
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "27.3.0",
3
+ "version": "27.5.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {