danoniplus 41.3.0 → 41.3.1

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 +43 -41
  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.1`;
12
+ const g_revisedDate = `2025/05/15`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -3448,55 +3448,60 @@ 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++) {
3465
+ const lastIdx = Math.max(...obj.musicNos, musicData.length - 1);
3466
+ for (let j = 0; j <= lastIdx; j++) {
3467
3467
  const musics = splitComma(musicData[j]);
3468
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
- // 選曲ではなく、単一作品用の項目としての管理変数を定義
3469
+ obj.musicTitles[j] = hasVal(musics[0])
3470
+ ? escapeHtml(getMusicNameSimple(musics[0]))
3471
+ : obj.musicTitles[0];
3472
+ obj.musicTitlesForView[j] = hasVal(musics[0])
3473
+ ? escapeHtmlForArray(getMusicNameMultiLine(musics[0]))
3474
+ : obj.musicTitlesForView[0];
3475
+ obj.artistNames[j] = hasVal(musics[1])
3476
+ ? escapeHtml(musics[1])
3477
+ : obj.artistNames[0];
3478
+ obj.artistUrls[j] = musics[2] || obj.artistUrls[0];
3479
+ obj.bpms[j] = musics[4] || obj.bpms[0];
3480
+
3481
+ // 代替タイトル名
3478
3482
  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
- }
3483
+ alternativeTitle = musics[3];
3491
3484
  }
3492
3485
  }
3493
3486
 
3494
3487
  } else {
3495
3488
  makeWarningWindow(g_msgInfoObj.E_0012);
3496
- obj.musicTitle = `musicName`;
3497
- obj.musicTitleForView = [`musicName`];
3489
+ }
3490
+
3491
+ // 単一作品用の項目としての管理変数
3492
+ obj.musicTitle = obj.musicTitles[0];
3493
+ obj.musicTitleForView = obj.musicTitlesForView[0];
3494
+ obj.artistName = obj.artistNames[0];
3495
+ if (obj.artistName === ``) {
3496
+ makeWarningWindow(g_msgInfoObj.E_0011);
3498
3497
  obj.artistName = `artistName`;
3499
- obj.artistUrl = ``;
3498
+ }
3499
+ obj.artistUrl = obj.artistUrls[0];
3500
+
3501
+ // 代替タイトル名は曲名定義の後に設定する(複数曲を束ねる名前であり、曲名ではないため)
3502
+ if (hasVal(alternativeTitle)) {
3503
+ obj.musicTitles[0] = escapeHtml(getMusicNameSimple(alternativeTitle));
3504
+ obj.musicTitlesForView[0] = escapeHtmlForArray(getMusicNameMultiLine(alternativeTitle));
3500
3505
  }
3501
3506
 
3502
3507
  // 選曲機能の利用有無
@@ -3619,9 +3624,6 @@ const headerConvert = _dosObj => {
3619
3624
  obj.viewLists = [...Array(obj.keyLabels.length).keys()];
3620
3625
  obj.keyLists = keyLists.sort((a, b) => parseInt(a) - parseInt(b));
3621
3626
  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
3627
 
3626
3628
  // 楽曲別のグループ化設定(選曲モードのみ)
3627
3629
  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.1",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "./js/danoni_main.js",
6
6
  "scripts": {