danoniplus 41.3.0 → 41.3.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.
Files changed (2) hide show
  1. package/js/danoni_main.js +46 -43
  2. 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 : 2025/05/10
7
+ * Revised : 2025/05/15
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 41.3.0`;
12
- const g_revisedDate = `2025/05/10`;
11
+ const g_version = `Ver 41.3.2`;
12
+ const g_revisedDate = `2025/05/15`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -3448,55 +3448,61 @@ const headerConvert = _dosObj => {
3448
3448
  }
3449
3449
 
3450
3450
  // 曲名
3451
- obj.musicTitles = [];
3452
- obj.musicTitlesForView = [];
3453
- obj.artistNames = [];
3454
- obj.artistUrls = [];
3455
- obj.musicNos = [];
3456
- obj.bpms = [];
3451
+ obj.musicTitles = [`musicName`];
3452
+ obj.musicTitlesForView = [[`musicName`]];
3453
+ obj.artistNames = [``];
3454
+ obj.artistUrls = [``];
3455
+ obj.bpms = [`----`];
3456
+ obj.musicNos = hasVal(_dosObj.musicNo)
3457
+ ? splitLF2(_dosObj.musicNo).map(Number).map(val => isNaN(val) ? 0 : val)
3458
+ : fillArray(_dosObj.difData?.split(`$`).length ?? 1);
3457
3459
 
3458
3460
  const dosMusicTitle = getHeader(_dosObj, `musicTitle`);
3461
+ let alternativeTitle;
3459
3462
  if (hasVal(dosMusicTitle)) {
3460
3463
  const musicData = splitLF2(dosMusicTitle);
3461
3464
 
3462
- if (hasVal(_dosObj.musicNo)) {
3463
- obj.musicNos = splitLF2(_dosObj.musicNo).map(val => Number(val));
3464
- }
3465
-
3466
- for (let j = 0; j < musicData.length; j++) {
3467
- const musics = splitComma(musicData[j]);
3468
-
3469
- if (obj.musicNos.length >= j) {
3470
- obj.musicTitles[j] = escapeHtml(getMusicNameSimple(musics[0]));
3471
- obj.musicTitlesForView[j] = escapeHtmlForArray(getMusicNameMultiLine(musics[0]));
3472
- obj.artistNames[j] = escapeHtml(musics[1] || obj.artistNames[0] || ``);
3473
- obj.artistUrls[j] = musics[2] || obj.artistUrls[0] || ``;
3474
- obj.bpms[j] = musics[4] || obj.bpms[0] || `----`;
3475
- }
3476
-
3477
- // 選曲ではなく、単一作品用の項目としての管理変数を定義
3465
+ const lastIdx = Math.max(...obj.musicNos, musicData.length - 1);
3466
+ for (let j = 0; j <= lastIdx; j++) {
3467
+ const tmpMusicData = musicData[j] ?? ``;
3468
+ const musics = splitComma(tmpMusicData);
3469
+
3470
+ obj.musicTitles[j] = hasVal(musics[0])
3471
+ ? escapeHtml(getMusicNameSimple(musics[0]))
3472
+ : obj.musicTitles[0];
3473
+ obj.musicTitlesForView[j] = hasVal(musics[0])
3474
+ ? escapeHtmlForArray(getMusicNameMultiLine(musics[0]))
3475
+ : obj.musicTitlesForView[0];
3476
+ obj.artistNames[j] = hasVal(musics[1])
3477
+ ? escapeHtml(musics[1])
3478
+ : obj.artistNames[0];
3479
+ obj.artistUrls[j] = musics[2] || obj.artistUrls[0];
3480
+ obj.bpms[j] = musics[4] || obj.bpms[0];
3481
+
3482
+ // 代替タイトル名
3478
3483
  if (j === 0) {
3479
- obj.musicTitle = obj.musicTitles[0];
3480
- obj.musicTitleForView = obj.musicTitlesForView[0];
3481
- obj.artistName = obj.artistNames[0];
3482
- if (obj.artistName === ``) {
3483
- makeWarningWindow(g_msgInfoObj.E_0011);
3484
- obj.artistName = `artistName`;
3485
- }
3486
- obj.artistUrl = obj.artistUrls[0];
3487
- if (hasVal(musics[3])) {
3488
- obj.musicTitles[0] = escapeHtml(getMusicNameSimple(musics[3]));
3489
- obj.musicTitlesForView[0] = escapeHtmlForArray(getMusicNameMultiLine(musics[3]));
3490
- }
3484
+ alternativeTitle = musics[3];
3491
3485
  }
3492
3486
  }
3493
3487
 
3494
3488
  } else {
3495
3489
  makeWarningWindow(g_msgInfoObj.E_0012);
3496
- obj.musicTitle = `musicName`;
3497
- obj.musicTitleForView = [`musicName`];
3490
+ }
3491
+
3492
+ // 単一作品用の項目としての管理変数
3493
+ obj.musicTitle = obj.musicTitles[0];
3494
+ obj.musicTitleForView = obj.musicTitlesForView[0];
3495
+ obj.artistName = obj.artistNames[0];
3496
+ if (obj.artistName === ``) {
3497
+ makeWarningWindow(g_msgInfoObj.E_0011);
3498
3498
  obj.artistName = `artistName`;
3499
- obj.artistUrl = ``;
3499
+ }
3500
+ obj.artistUrl = obj.artistUrls[0];
3501
+
3502
+ // 代替タイトル名は曲名定義の後に設定する(複数曲を束ねる名前であり、曲名ではないため)
3503
+ if (hasVal(alternativeTitle)) {
3504
+ obj.musicTitles[0] = escapeHtml(getMusicNameSimple(alternativeTitle));
3505
+ obj.musicTitlesForView[0] = escapeHtmlForArray(getMusicNameMultiLine(alternativeTitle));
3500
3506
  }
3501
3507
 
3502
3508
  // 選曲機能の利用有無
@@ -3619,9 +3625,6 @@ const headerConvert = _dosObj => {
3619
3625
  obj.viewLists = [...Array(obj.keyLabels.length).keys()];
3620
3626
  obj.keyLists = keyLists.sort((a, b) => parseInt(a) - parseInt(b));
3621
3627
  obj.undefinedKeyLists = obj.keyLists.filter(key => g_keyObj[`${g_keyObj.defaultProp}${key}_0`] === undefined);
3622
- if (obj.musicNos.length === 0) {
3623
- obj.musicNos = fillArray(obj.keyLabels.length);
3624
- }
3625
3628
 
3626
3629
  // 楽曲別のグループ化設定(選曲モードのみ)
3627
3630
  if (hasVal(_dosObj.musicGroup)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "41.3.0",
3
+ "version": "41.3.2",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "./js/danoni_main.js",
6
6
  "scripts": {