danoniplus 34.0.0 → 34.2.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/danoni3.html +2 -2
- package/js/danoni_main.js +25 -6
- package/js/lib/danoni_constants.js +55 -25
- package/package.json +1 -1
package/danoni/danoni3.html
CHANGED
|
@@ -105,8 +105,8 @@ a:hover { color:#FF9900; text-decoration: underline; }
|
|
|
105
105
|
キーコンフィグ(KeyConfig)にてキーの変更が可能です。<br>
|
|
106
106
|
<br>
|
|
107
107
|
推奨ブラウザ:<br>
|
|
108
|
-
Google Chrome, Opera, Vivaldi などWebkit系ブラウザ<br>
|
|
109
|
-
(
|
|
108
|
+
Google Chrome, Opera, Vivaldi, Microsoft Edge, Safari などWebkit系ブラウザ<br>
|
|
109
|
+
(IE及び、Firefoxのローカル起動は動作保証外です。)<br>
|
|
110
110
|
<br>
|
|
111
111
|
GitHub:<br>
|
|
112
112
|
<a href="https://github.com/cwtickle/danoniplus">https://github.com/cwtickle/danoniplus</a><br>
|
package/js/danoni_main.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Source by tickle
|
|
6
6
|
* Created : 2018/10/08
|
|
7
|
-
* Revised : 2023/
|
|
7
|
+
* Revised : 2023/10/01
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 34.
|
|
12
|
-
const g_revisedDate = `2023/
|
|
11
|
+
const g_version = `Ver 34.2.0`;
|
|
12
|
+
const g_revisedDate = `2023/10/01`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -368,6 +368,13 @@ const splitLF = _str => _str?.split(`\r`).join(`\n`).split(`\n`);
|
|
|
368
368
|
*/
|
|
369
369
|
const splitLF2 = (_str, _delim = `$`) => splitLF(_str)?.filter(val => val !== ``).join(_delim).split(_delim);
|
|
370
370
|
|
|
371
|
+
/**
|
|
372
|
+
* カンマ区切り処理
|
|
373
|
+
* (ただし、カンマ+半角スペースの組の場合は区切り文字と見做さない)
|
|
374
|
+
* @param {string} _str
|
|
375
|
+
*/
|
|
376
|
+
const splitComma = _str => _str?.split(`, `).join(`*comma* `).split(`,`);
|
|
377
|
+
|
|
371
378
|
/**
|
|
372
379
|
* 重複を排除した配列の生成
|
|
373
380
|
* @param {array} _array1
|
|
@@ -2167,6 +2174,7 @@ const loadLocalStorage = _ => {
|
|
|
2167
2174
|
g_localeObj.num = g_localeObj.list.findIndex(val => val === g_localeObj.val);
|
|
2168
2175
|
}
|
|
2169
2176
|
Object.assign(g_msgInfoObj, g_lang_msgInfoObj[g_localeObj.val]);
|
|
2177
|
+
Object.assign(g_kCd, g_lang_kCd[g_localeObj.val]);
|
|
2170
2178
|
|
|
2171
2179
|
// 作品別ローカルストレージの読込
|
|
2172
2180
|
const checkStorage = localStorage.getItem(g_localStorageUrl);
|
|
@@ -2743,7 +2751,7 @@ const headerConvert = _dosObj => {
|
|
|
2743
2751
|
}
|
|
2744
2752
|
|
|
2745
2753
|
for (let j = 0; j < musicData.length; j++) {
|
|
2746
|
-
const musics = musicData[j]
|
|
2754
|
+
const musics = splitComma(musicData[j]);
|
|
2747
2755
|
|
|
2748
2756
|
if (obj.musicNos.length >= j) {
|
|
2749
2757
|
obj.musicTitles[j] = escapeHtml(getMusicNameSimple(musics[0]));
|
|
@@ -2751,7 +2759,7 @@ const headerConvert = _dosObj => {
|
|
|
2751
2759
|
obj.artistNames[j] = escapeHtml(musics[1] ?? ``);
|
|
2752
2760
|
}
|
|
2753
2761
|
}
|
|
2754
|
-
const musics = musicData[0]
|
|
2762
|
+
const musics = splitComma(musicData[0]);
|
|
2755
2763
|
obj.musicTitle = obj.musicTitles[0];
|
|
2756
2764
|
obj.musicTitleForView = obj.musicTitlesForView[0];
|
|
2757
2765
|
obj.artistName = obj.artistNames[0] ?? ``;
|
|
@@ -6717,7 +6725,10 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6717
6725
|
|
|
6718
6726
|
// 全角切替、BackSpace、Deleteキー、Escキーは割り当て禁止
|
|
6719
6727
|
// また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
|
|
6720
|
-
const disabledKeys = [
|
|
6728
|
+
const disabledKeys = [240, 242, 243, 244, 91, 29, 28, 27, 259, g_prevKey];
|
|
6729
|
+
if (g_localeObj.val === `Ja`) {
|
|
6730
|
+
disabledKeys.unshift(229);
|
|
6731
|
+
}
|
|
6721
6732
|
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
6722
6733
|
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
6723
6734
|
return;
|
|
@@ -7623,6 +7634,14 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7623
7634
|
wordMaxDepth = tmpWordData[k + 1];
|
|
7624
7635
|
}
|
|
7625
7636
|
|
|
7637
|
+
// 同一行数で数字が取得できるまでは歌詞表示と見做して結合
|
|
7638
|
+
let m = 3;
|
|
7639
|
+
while (hasVal(tmpWordData[m]) && isNaN(parseInt(tmpWordData[m])) && m < tmpWordData.length) {
|
|
7640
|
+
tmpWordData[k + 2] += `,${tmpWordData[k + m]}`;
|
|
7641
|
+
tmpWordData.splice(k + m, 1);
|
|
7642
|
+
}
|
|
7643
|
+
|
|
7644
|
+
// 歌詞表示データの格納
|
|
7626
7645
|
let dataCnts = 0;
|
|
7627
7646
|
[wordData[tmpWordData[k]], dataCnts] =
|
|
7628
7647
|
checkDuplicatedObjects(wordData[tmpWordData[k]]);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2023/
|
|
8
|
+
* Revised : 2023/10/01 (v34.2.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1081,13 +1081,66 @@ let g_currentk = 0;
|
|
|
1081
1081
|
let g_prevKey = -1;
|
|
1082
1082
|
|
|
1083
1083
|
// キーコード
|
|
1084
|
-
const g_kCd =
|
|
1084
|
+
const g_kCd = {};
|
|
1085
1085
|
const g_kCdN = [];
|
|
1086
1086
|
for (let j = 0; j < 260; j++) {
|
|
1087
1087
|
g_kCd[j] = ``;
|
|
1088
1088
|
g_kCdN[j] = ``;
|
|
1089
1089
|
}
|
|
1090
1090
|
|
|
1091
|
+
const g_lang_kCd = {
|
|
1092
|
+
Ja: {
|
|
1093
|
+
48: `0`,
|
|
1094
|
+
49: `1`,
|
|
1095
|
+
50: `2`,
|
|
1096
|
+
51: `3`,
|
|
1097
|
+
52: `4`,
|
|
1098
|
+
53: `5`,
|
|
1099
|
+
54: `6`,
|
|
1100
|
+
55: `7`,
|
|
1101
|
+
56: `8`,
|
|
1102
|
+
57: `9`,
|
|
1103
|
+
186: `: *`,
|
|
1104
|
+
187: `; +`,
|
|
1105
|
+
188: `, <`,
|
|
1106
|
+
189: `- =`,
|
|
1107
|
+
190: `. >`,
|
|
1108
|
+
191: `/ ?`,
|
|
1109
|
+
192: "@ `",
|
|
1110
|
+
219: `[ {`,
|
|
1111
|
+
220: `\\ |`,
|
|
1112
|
+
221: `] }`,
|
|
1113
|
+
222: `^ ~`,
|
|
1114
|
+
226: `\\ _`,
|
|
1115
|
+
229: `IME`,
|
|
1116
|
+
},
|
|
1117
|
+
En: {
|
|
1118
|
+
48: `0 )`,
|
|
1119
|
+
49: `1 !`,
|
|
1120
|
+
50: `2 @`,
|
|
1121
|
+
51: `3 #`,
|
|
1122
|
+
52: `4 $`,
|
|
1123
|
+
53: `5 %`,
|
|
1124
|
+
54: `6 ^`,
|
|
1125
|
+
55: `7 &`,
|
|
1126
|
+
56: `8 *`,
|
|
1127
|
+
57: `9 (`,
|
|
1128
|
+
186: `' "`,
|
|
1129
|
+
187: `; :`,
|
|
1130
|
+
188: `, <`,
|
|
1131
|
+
189: `- _`,
|
|
1132
|
+
190: `. >`,
|
|
1133
|
+
191: `/ ?`,
|
|
1134
|
+
192: `[ {`,
|
|
1135
|
+
219: `] }`,
|
|
1136
|
+
220: `IntlYen`,
|
|
1137
|
+
221: `\\ |`,
|
|
1138
|
+
222: `= +`,
|
|
1139
|
+
226: `IntlRo`,
|
|
1140
|
+
229: "` ~",
|
|
1141
|
+
},
|
|
1142
|
+
};
|
|
1143
|
+
|
|
1091
1144
|
// キー表示用
|
|
1092
1145
|
g_kCd[0] = `- - -`;
|
|
1093
1146
|
g_kCd[1] = `Unknown`;
|
|
@@ -1115,16 +1168,6 @@ g_kCd[44] = `PS`;
|
|
|
1115
1168
|
g_kCd[45] = `Insert`;
|
|
1116
1169
|
g_kCd[46] = `Delete`;
|
|
1117
1170
|
g_kCd[47] = `Help`;
|
|
1118
|
-
g_kCd[48] = `0`;
|
|
1119
|
-
g_kCd[49] = `1`;
|
|
1120
|
-
g_kCd[50] = `2`;
|
|
1121
|
-
g_kCd[51] = `3`;
|
|
1122
|
-
g_kCd[52] = `4`;
|
|
1123
|
-
g_kCd[53] = `5`;
|
|
1124
|
-
g_kCd[54] = `6`;
|
|
1125
|
-
g_kCd[55] = `7`;
|
|
1126
|
-
g_kCd[56] = `8`;
|
|
1127
|
-
g_kCd[57] = `9`;
|
|
1128
1171
|
g_kCd[65] = `A`;
|
|
1129
1172
|
g_kCd[66] = `B`;
|
|
1130
1173
|
g_kCd[67] = `C`;
|
|
@@ -1187,19 +1230,6 @@ g_kCd[126] = `F15`;
|
|
|
1187
1230
|
g_kCd[134] = `FN`;
|
|
1188
1231
|
g_kCd[144] = `NumLk`;
|
|
1189
1232
|
g_kCd[145] = `SL`;
|
|
1190
|
-
g_kCd[186] = `: *`;
|
|
1191
|
-
g_kCd[187] = `; +`;
|
|
1192
|
-
g_kCd[188] = `, <`;
|
|
1193
|
-
g_kCd[189] = `- =`;
|
|
1194
|
-
g_kCd[190] = `. >`;
|
|
1195
|
-
g_kCd[191] = `/ ?`;
|
|
1196
|
-
g_kCd[192] = "@ `";
|
|
1197
|
-
g_kCd[219] = `[ {`;
|
|
1198
|
-
g_kCd[220] = `\\ |`;
|
|
1199
|
-
g_kCd[221] = `] }`;
|
|
1200
|
-
g_kCd[222] = `^ ~`;
|
|
1201
|
-
g_kCd[226] = `\\ _`;
|
|
1202
|
-
g_kCd[229] = `IME`;
|
|
1203
1233
|
g_kCd[240] = `CapsLk`;
|
|
1204
1234
|
g_kCd[256] = `R)Shift`;
|
|
1205
1235
|
g_kCd[257] = `R)Ctrl`;
|