danoniplus 44.4.0 → 44.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.
- package/js/danoni_main.js +176 -102
- package/js/lib/danoni_constants.js +33 -5
- 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 : 2026/02/
|
|
7
|
+
* Revised : 2026/02/23
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 44.
|
|
12
|
-
const g_revisedDate = `2026/02/
|
|
11
|
+
const g_version = `Ver 44.5.0`;
|
|
12
|
+
const g_revisedDate = `2026/02/23`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -5114,6 +5114,7 @@ const titleInit = (_initFlg = false) => {
|
|
|
5114
5114
|
|
|
5115
5115
|
clearWindow(true);
|
|
5116
5116
|
g_currentPage = `title`;
|
|
5117
|
+
g_stateObj.settingSummaryVisible = false;
|
|
5117
5118
|
|
|
5118
5119
|
// タイトル用フレーム初期化
|
|
5119
5120
|
g_scoreObj.titleFrameNum = 0;
|
|
@@ -6423,6 +6424,23 @@ const commonSettingBtn = _labelName => {
|
|
|
6423
6424
|
evt.target.classList.replace(g_cssObj[`button_${from}`], g_cssObj[`button_${to}`]);
|
|
6424
6425
|
};
|
|
6425
6426
|
|
|
6427
|
+
const makeSettingSummary = () => {
|
|
6428
|
+
const tmpDiv = createEmptySprite(divRoot, `settingSumSprite`, {
|
|
6429
|
+
x: g_btnX() + 25, y: g_sHeight - 200, w: g_btnWidth() - 50, h: 100, pointerEvents: C_DIS_AUTO, overflow: C_DIS_AUTO
|
|
6430
|
+
});
|
|
6431
|
+
tmpDiv.style.background = `#000000cc`;
|
|
6432
|
+
|
|
6433
|
+
multiAppend(tmpDiv,
|
|
6434
|
+
createDivCss2Label(`lblSummaryHeader`, g_lblNameObj.settingSummary, g_lblPosObj.lblSummaryHeader),
|
|
6435
|
+
createDivCss2Label(`lblSummaryEnvironment`, ``, g_lblPosObj.lblSummaryEnvironment),
|
|
6436
|
+
createDivCss2Label(`lblSummaryDifInfo`, ``, g_lblPosObj.lblSummaryDifInfo),
|
|
6437
|
+
createDivCss2Label(`lblSummaryPlaystyleInfo`, ``, g_lblPosObj.lblSummaryPlaystyleInfo),
|
|
6438
|
+
createDivCss2Label(`lblSummaryDisplayInfo`, ``, g_lblPosObj.lblSummaryDisplayInfo),
|
|
6439
|
+
createDivCss2Label(`lblSummaryDisplay2Info`, ``, g_lblPosObj.lblSummaryDisplay2Info),
|
|
6440
|
+
);
|
|
6441
|
+
tmpDiv.style.visibility = g_stateObj.settingSummaryVisible ? `visible` : `hidden`;
|
|
6442
|
+
};
|
|
6443
|
+
|
|
6426
6444
|
multiAppend(divRoot,
|
|
6427
6445
|
|
|
6428
6446
|
// タイトル画面へ戻る
|
|
@@ -6464,7 +6482,39 @@ const commonSettingBtn = _labelName => {
|
|
|
6464
6482
|
Object.assign(g_lblPosObj.btnPrecond, {
|
|
6465
6483
|
resetFunc: () => preconditionInit(),
|
|
6466
6484
|
}), g_cssObj.button_Setting),
|
|
6485
|
+
|
|
6486
|
+
// 設定内容サマリを表示
|
|
6487
|
+
createCss2Button(`btnSettingSummary`, `>`, () => true,
|
|
6488
|
+
Object.assign(g_lblPosObj.btnSettingSummary, {
|
|
6489
|
+
resetFunc: () => {
|
|
6490
|
+
g_stateObj.settingSummaryVisible = !g_stateObj.settingSummaryVisible;
|
|
6491
|
+
visibleSettingSummary(g_stateObj.settingSummaryVisible);
|
|
6492
|
+
},
|
|
6493
|
+
}), g_cssObj.button_Mini),
|
|
6467
6494
|
);
|
|
6495
|
+
makeSettingSummary();
|
|
6496
|
+
};
|
|
6497
|
+
|
|
6498
|
+
const visibleSettingSummary = _visible => {
|
|
6499
|
+
const summaryDiv = document.getElementById(`settingSumSprite`);
|
|
6500
|
+
if (summaryDiv) {
|
|
6501
|
+
summaryDiv.style.visibility = _visible ? `visible` : `hidden`;
|
|
6502
|
+
updateSettingSummary();
|
|
6503
|
+
}
|
|
6504
|
+
};
|
|
6505
|
+
|
|
6506
|
+
const updateSettingSummary = () => {
|
|
6507
|
+
if (document.getElementById(`settingSumSprite`) === null) return;
|
|
6508
|
+
const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
|
|
6509
|
+
const orgShuffleFlg = g_keyObj[`shuffle${keyCtrlPtn}`].filter((shuffleGr, j) => shuffleGr !== g_keyObj[`shuffle${keyCtrlPtn}_0d`][j]).length === 0;
|
|
6510
|
+
const shuffleName = `${getStgDetailName(g_stateObj.shuffle)}${!orgShuffleFlg && !g_stateObj.shuffle.endsWith(`+`) ? getStgDetailName('(S)') : ''}`;
|
|
6511
|
+
const settingData = getSelectedSettingList(shuffleName);
|
|
6512
|
+
|
|
6513
|
+
document.getElementById(`lblSummaryDifInfo`).innerHTML = settingData.difData;
|
|
6514
|
+
document.getElementById(`lblSummaryPlaystyleInfo`).innerHTML = settingData.playStyleData;
|
|
6515
|
+
document.getElementById(`lblSummaryDisplayInfo`).innerHTML = settingData.displayData;
|
|
6516
|
+
document.getElementById(`lblSummaryDisplay2Info`).innerHTML = settingData.display2Data;
|
|
6517
|
+
document.getElementById(`lblSummaryEnvironment`).innerHTML = `(Adj: ${g_stateObj.adjustment} f, Volume: ${g_stateObj.volume}%, ColorType: ${g_colorType})`;
|
|
6468
6518
|
};
|
|
6469
6519
|
|
|
6470
6520
|
/**
|
|
@@ -7931,6 +7981,10 @@ const setSetting = (_scrollNum, _settingName, _unitName = ``, _roundNum = 0, { f
|
|
|
7931
7981
|
document.getElementById(`lnk${toCapitalize(_settingName)}`).textContent =
|
|
7932
7982
|
`${getStgDetailName(g_stateObj[_settingName])}${_unitName}${g_localStorage[_settingName] === g_stateObj[_settingName] ? ' *' : ''}`;
|
|
7933
7983
|
func();
|
|
7984
|
+
|
|
7985
|
+
if (document.getElementById(`settingSumSprite`) !== null) {
|
|
7986
|
+
updateSettingSummary();
|
|
7987
|
+
}
|
|
7934
7988
|
};
|
|
7935
7989
|
|
|
7936
7990
|
/**
|
|
@@ -7972,6 +8026,7 @@ const setReverse = _btn => {
|
|
|
7972
8026
|
g_settings.reverseNum = (g_settings.reverseNum + 1) % 2;
|
|
7973
8027
|
g_stateObj.reverse = g_settings.reverses[g_settings.reverseNum];
|
|
7974
8028
|
setReverseView(_btn);
|
|
8029
|
+
updateSettingSummary();
|
|
7975
8030
|
}
|
|
7976
8031
|
};
|
|
7977
8032
|
|
|
@@ -8422,6 +8477,7 @@ const createSettingsDisplayWindow = _sprite => {
|
|
|
8422
8477
|
|
|
8423
8478
|
withShortCutDesc();
|
|
8424
8479
|
interlockingButton(g_headerObj, _name, nextBarColor, prevBarColor, true);
|
|
8480
|
+
updateSettingSummary();
|
|
8425
8481
|
};
|
|
8426
8482
|
|
|
8427
8483
|
// Displayボタン初期化
|
|
@@ -8488,11 +8544,14 @@ const createSettingsDisplayWindow = _sprite => {
|
|
|
8488
8544
|
|
|
8489
8545
|
_btn.classList.replace(g_cssObj[`button_Rev${prevLock}`],
|
|
8490
8546
|
g_cssObj[`button_Rev${g_stateObj.filterLock}`]);
|
|
8547
|
+
updateSettingSummary();
|
|
8491
8548
|
};
|
|
8492
8549
|
|
|
8493
8550
|
const appearanceSlider = document.getElementById(`appearanceSlider`);
|
|
8494
|
-
appearanceSlider.addEventListener(`input`, () =>
|
|
8495
|
-
g_hidSudObj.filterPos = inputSlider(appearanceSlider, lblAppearancePos, `appearance`)
|
|
8551
|
+
appearanceSlider.addEventListener(`input`, () => {
|
|
8552
|
+
g_hidSudObj.filterPos = inputSlider(appearanceSlider, lblAppearancePos, `appearance`);
|
|
8553
|
+
updateSettingSummary();
|
|
8554
|
+
}, false);
|
|
8496
8555
|
|
|
8497
8556
|
const dispAppearanceSlider = () => {
|
|
8498
8557
|
[`lblAppearanceBar`, `lnkLockBtn`, `lnkfilterLine`].forEach(obj =>
|
|
@@ -13472,12 +13531,12 @@ const changeAppearanceFilter = (_num = 10) => {
|
|
|
13472
13531
|
$id(`arrowSprite${topNum + j}`).clipPath = topShape;
|
|
13473
13532
|
$id(`arrowSprite${bottomNum + j}`).clipPath = bottomShape;
|
|
13474
13533
|
|
|
13475
|
-
|
|
13476
|
-
|
|
13534
|
+
addY(`filterBar${topNum + j}`, `appearance`, parseFloat($id(`arrowSprite${j}`).top) + topDist);
|
|
13535
|
+
addY(`filterBar${bottomNum + j}`, `appearance`, parseFloat($id(`arrowSprite${j + 1}`).top) + bottomDist);
|
|
13477
13536
|
|
|
13478
13537
|
if (![`Default`, `Halfway`].includes(g_stateObj.stepArea)) {
|
|
13479
|
-
|
|
13480
|
-
|
|
13538
|
+
addY(`filterBar${bottomNum + j}_HS`, `appearance`, parseFloat($id(`arrowSprite${j}`).top) + bottomDist);
|
|
13539
|
+
addY(`filterBar${topNum + j}_HS`, `appearance`, parseFloat($id(`arrowSprite${j + 1}`).top) + topDist);
|
|
13481
13540
|
}
|
|
13482
13541
|
}
|
|
13483
13542
|
|
|
@@ -14273,87 +14332,7 @@ const resultInit = () => {
|
|
|
14273
14332
|
const transKeyName = getTransKeyName();
|
|
14274
14333
|
const orgShuffleFlg = g_keyObj[`shuffle${keyCtrlPtn}`].filter((shuffleGr, j) => shuffleGr !== g_keyObj[`shuffle${keyCtrlPtn}_0d`][j]).length === 0;
|
|
14275
14334
|
const shuffleName = `${getStgDetailName(g_stateObj.shuffle)}${!orgShuffleFlg && !g_stateObj.shuffle.endsWith(`+`) ? getStgDetailName('(S)') : ''}`;
|
|
14276
|
-
|
|
14277
|
-
/**
|
|
14278
|
-
* プレイスタイルのカスタム有無
|
|
14279
|
-
* @param {string} _flg
|
|
14280
|
-
* @param {string|boolean} _defaultSet デフォルト値
|
|
14281
|
-
* @param {string} _displayText
|
|
14282
|
-
* @returns {string}
|
|
14283
|
-
*/
|
|
14284
|
-
const withOptions = (_flg, _defaultSet, _displayText = _flg) =>
|
|
14285
|
-
(_flg !== _defaultSet ? getStgDetailName(_displayText) : ``);
|
|
14286
|
-
|
|
14287
|
-
const withDisplays = (_flg, _defaultSet, _displayText = _flg) =>
|
|
14288
|
-
(_flg !== _defaultSet
|
|
14289
|
-
? getStgDetailName(_displayText) + (_flg === C_FLG_OFF ? `` : ` : ${getStgDetailName(_flg)}`) : ``);
|
|
14290
|
-
|
|
14291
|
-
// 譜面名の組み立て処理 (Ex: 9Akey / Normal-Leftless (maker) [X-Mirror])
|
|
14292
|
-
const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
|
|
14293
|
-
const difDatas = [
|
|
14294
|
-
`${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} ${keyUnitName} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`,
|
|
14295
|
-
`${withOptions(g_autoPlaysBase.includes(g_stateObj.autoPlay), true, `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`)}`,
|
|
14296
|
-
`${withOptions(g_headerObj.makerView, false, `(${g_headerObj.creatorNames[g_stateObj.scoreId]})`)}`,
|
|
14297
|
-
`${withOptions(g_stateObj.shuffle, C_FLG_OFF, `[${shuffleName}]`)}`
|
|
14298
|
-
];
|
|
14299
|
-
let difData = difDatas.filter(value => value !== ``).join(` `);
|
|
14300
|
-
const difDataForImage = difDatas.filter((value, j) => value !== `` && j !== 2).join(` `);
|
|
14301
|
-
|
|
14302
|
-
// 設定の組み立て処理 (Ex: 4x, Brake, Reverse, Sudden+, NoRecovery)
|
|
14303
|
-
let playStyleData = [
|
|
14304
|
-
`${g_stateObj.speed}${g_lblNameObj.multi}`,
|
|
14305
|
-
withOptions(g_stateObj.motion, C_FLG_OFF),
|
|
14306
|
-
`${withOptions(g_stateObj.reverse, C_FLG_OFF,
|
|
14307
|
-
getStgDetailName(g_stateObj.scroll !== '---' ? 'R-' : 'Reverse'))}${withOptions(g_stateObj.scroll, '---')}`,
|
|
14308
|
-
withOptions(g_stateObj.appearance, `Visible`),
|
|
14309
|
-
withOptions(g_stateObj.gauge, g_settings.gauges[0]),
|
|
14310
|
-
withOptions(g_stateObj.playWindow, `Default`),
|
|
14311
|
-
withOptions(g_stateObj.stepArea, `Default`),
|
|
14312
|
-
withOptions(g_stateObj.frzReturn, C_FLG_OFF, `FR:${g_stateObj.frzReturn}`),
|
|
14313
|
-
withOptions(g_stateObj.shaking, C_FLG_OFF),
|
|
14314
|
-
withOptions(g_stateObj.effect, C_FLG_OFF),
|
|
14315
|
-
withOptions(g_stateObj.camoufrage, C_FLG_OFF, `Cmf:${g_stateObj.camoufrage}`),
|
|
14316
|
-
withOptions(g_stateObj.swapping, C_FLG_OFF, `Swap:${g_stateObj.swapping}`),
|
|
14317
|
-
withOptions(g_stateObj.judgRange, `Normal`, `Judg:${g_stateObj.judgRange}`),
|
|
14318
|
-
].filter(value => value !== ``).join(`, `);
|
|
14319
|
-
|
|
14320
|
-
// Display設定の組み立て処理 (Ex: Step : FlatBar, Judge, Life : OFF)
|
|
14321
|
-
let displayData = [
|
|
14322
|
-
withDisplays(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone),
|
|
14323
|
-
withDisplays(g_stateObj.d_judgment, C_FLG_ON, g_lblNameObj.rd_Judgment),
|
|
14324
|
-
withDisplays(g_stateObj.d_fastslow, C_FLG_ON, g_lblNameObj.rd_FastSlow),
|
|
14325
|
-
withDisplays(g_stateObj.d_lifegauge, C_FLG_ON, g_lblNameObj.rd_LifeGauge),
|
|
14326
|
-
withDisplays(g_stateObj.d_score, C_FLG_ON, g_lblNameObj.rd_Score),
|
|
14327
|
-
withDisplays(g_stateObj.d_musicinfo, C_FLG_ON, g_lblNameObj.rd_MusicInfo),
|
|
14328
|
-
withDisplays(g_stateObj.d_filterline, C_FLG_ON, g_lblNameObj.rd_FilterLine),
|
|
14329
|
-
].filter(value => value !== ``).join(`, `);
|
|
14330
|
-
if (displayData === ``) {
|
|
14331
|
-
displayData = `All Visible`;
|
|
14332
|
-
} else {
|
|
14333
|
-
// 表示設定のOFF項目を末尾にまとめる
|
|
14334
|
-
const displayList = displayData.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
14335
|
-
displayData = displayList.join(`, `);
|
|
14336
|
-
if (!displayList.at(-1).includes(`:`)) {
|
|
14337
|
-
displayData += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
14338
|
-
}
|
|
14339
|
-
}
|
|
14340
|
-
|
|
14341
|
-
let display2Data = [
|
|
14342
|
-
withDisplays(g_stateObj.d_speed, C_FLG_ON, g_lblNameObj.rd_Speed),
|
|
14343
|
-
withDisplays(g_stateObj.d_color, C_FLG_ON, g_lblNameObj.rd_Color),
|
|
14344
|
-
withDisplays(g_stateObj.d_lyrics, C_FLG_ON, g_lblNameObj.rd_Lyrics),
|
|
14345
|
-
withDisplays(g_stateObj.d_background, C_FLG_ON, g_lblNameObj.rd_Background),
|
|
14346
|
-
withDisplays(g_stateObj.d_arroweffect, C_FLG_ON, g_lblNameObj.rd_ArrowEffect),
|
|
14347
|
-
withDisplays(g_stateObj.d_special, C_FLG_ON, g_lblNameObj.rd_Special),
|
|
14348
|
-
].filter(value => value !== ``).join(`, `);
|
|
14349
|
-
if (display2Data !== ``) {
|
|
14350
|
-
// 表示設定のOFF項目を末尾にまとめる
|
|
14351
|
-
const display2List = display2Data.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
14352
|
-
display2Data = display2List.join(`, `);
|
|
14353
|
-
if (!display2List.at(-1).includes(`:`)) {
|
|
14354
|
-
display2Data += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
14355
|
-
}
|
|
14356
|
-
}
|
|
14335
|
+
const settingData = getSelectedSettingList(shuffleName);
|
|
14357
14336
|
|
|
14358
14337
|
const [lblRX, dataRX] = [20, 60];
|
|
14359
14338
|
multiAppend(playDataWindow,
|
|
@@ -14361,12 +14340,12 @@ const resultInit = () => {
|
|
|
14361
14340
|
makeCssResultPlayData(`lblMusicData`, dataRX, g_cssObj.result_style, 0, mTitleForView[0]),
|
|
14362
14341
|
makeCssResultPlayData(`lblMusicData2`, dataRX, g_cssObj.result_style, 1, mTitleForView[1]),
|
|
14363
14342
|
makeCssResultPlayData(`lblDifficulty`, lblRX, g_cssObj.result_lbl, 2, g_lblNameObj.rt_Difficulty, C_ALIGN_LEFT),
|
|
14364
|
-
makeCssResultPlayData(`lblDifData`, dataRX, g_cssObj.result_style, 2, difData),
|
|
14343
|
+
makeCssResultPlayData(`lblDifData`, dataRX, g_cssObj.result_style, 2, settingData.difData),
|
|
14365
14344
|
makeCssResultPlayData(`lblStyle`, lblRX, g_cssObj.result_lbl, 3, g_lblNameObj.rt_Style, C_ALIGN_LEFT),
|
|
14366
|
-
makeCssResultPlayData(`lblStyleData`, dataRX, g_cssObj.result_style, 3, playStyleData),
|
|
14345
|
+
makeCssResultPlayData(`lblStyleData`, dataRX, g_cssObj.result_style, 3, settingData.playStyleData),
|
|
14367
14346
|
makeCssResultPlayData(`lblDisplay`, lblRX, g_cssObj.result_lbl, 4, g_lblNameObj.rt_Display, C_ALIGN_LEFT),
|
|
14368
|
-
makeCssResultPlayData(`lblDisplayData`, dataRX, g_cssObj.result_style, 4, displayData),
|
|
14369
|
-
makeCssResultPlayData(`lblDisplay2Data`, dataRX, g_cssObj.result_style, 5, display2Data),
|
|
14347
|
+
makeCssResultPlayData(`lblDisplayData`, dataRX, g_cssObj.result_style, 4, settingData.displayData),
|
|
14348
|
+
makeCssResultPlayData(`lblDisplay2Data`, dataRX, g_cssObj.result_style, 5, settingData.display2Data),
|
|
14370
14349
|
);
|
|
14371
14350
|
|
|
14372
14351
|
// 設定項目が多い場合に2行に分解して表示する処理
|
|
@@ -14690,7 +14669,7 @@ const resultInit = () => {
|
|
|
14690
14669
|
g_localStorage.highscores[scoreName].dateTime = currentDateTime;
|
|
14691
14670
|
g_localStorage.highscores[scoreName].rankMark = rankMark;
|
|
14692
14671
|
g_localStorage.highscores[scoreName].rankColor = rankColor;
|
|
14693
|
-
g_localStorage.highscores[scoreName].playStyle = playStyleData;
|
|
14672
|
+
g_localStorage.highscores[scoreName].playStyle = settingData.playStyleData;
|
|
14694
14673
|
|
|
14695
14674
|
g_localStorage.highscores[scoreName].fast = g_resultObj.fast;
|
|
14696
14675
|
g_localStorage.highscores[scoreName].slow = g_resultObj.slow;
|
|
@@ -14764,6 +14743,7 @@ const resultInit = () => {
|
|
|
14764
14743
|
// X (Twitter)用リザルト
|
|
14765
14744
|
// スコアを上塗りする可能性があるため、カスタムイベント後に配置
|
|
14766
14745
|
const hashTag = (hasVal(g_headerObj.hashTag) ? ` ${g_headerObj.hashTag}` : ``);
|
|
14746
|
+
const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
|
|
14767
14747
|
const keyUnitAbbName = keyUnitName.slice(0, 1) || ``;
|
|
14768
14748
|
let tweetDifData = `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName}${getStgDetailName(keyUnitAbbName + '-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}`;
|
|
14769
14749
|
if (g_stateObj.shuffle !== `OFF`) {
|
|
@@ -14785,7 +14765,8 @@ const resultInit = () => {
|
|
|
14785
14765
|
const resultParams = {
|
|
14786
14766
|
tuning: g_headerObj.tuning,
|
|
14787
14767
|
highscore: g_resultObj,
|
|
14788
|
-
|
|
14768
|
+
playStyleData: settingData.playStyleData,
|
|
14769
|
+
hashTag, musicTitle, tweetDifData, rankMark,
|
|
14789
14770
|
tweetExcessive, tweetFrzJdg, tweetMaxCombo, baseTwitUrl
|
|
14790
14771
|
};
|
|
14791
14772
|
let tweetResultTmp = makeResultText(g_headerObj.resultFormat, resultParams);
|
|
@@ -14832,13 +14813,13 @@ const resultInit = () => {
|
|
|
14832
14813
|
drawText(unEscapeHtml(mTitleForView[1]), { hy: 2 });
|
|
14833
14814
|
drawText(`${getEmojiForCanvas(g_emojiObj.memo)} ${unEscapeHtml(g_headerObj.tuning)} / ${getEmojiForCanvas(g_emojiObj.musical)} ${unEscapeHtml(artistName)}`,
|
|
14834
14815
|
{ hy: mTitleForView[1] !== `` ? 3 : 2, siz: 12 });
|
|
14835
|
-
drawText(unEscapeHtml(difDataForImage), { hy: 4 });
|
|
14816
|
+
drawText(unEscapeHtml(settingData.difDataForImage), { hy: 4 });
|
|
14836
14817
|
|
|
14837
|
-
if (playStyleData.length > 60) {
|
|
14838
|
-
drawText(playStyleData.slice(0, playStyleBreakNum), { hy: 5, siz: getFontSize2(playStyleData.slice(0, playStyleBreakNum), 370) });
|
|
14839
|
-
drawText(playStyleData.slice(playStyleBreakNum), { hy: 6, siz: getFontSize2(playStyleData.slice(playStyleBreakNum), 370) });
|
|
14818
|
+
if (settingData.playStyleData.length > 60) {
|
|
14819
|
+
drawText(settingData.playStyleData.slice(0, playStyleBreakNum), { hy: 5, siz: getFontSize2(settingData.playStyleData.slice(0, playStyleBreakNum), 370) });
|
|
14820
|
+
drawText(settingData.playStyleData.slice(playStyleBreakNum), { hy: 6, siz: getFontSize2(settingData.playStyleData.slice(playStyleBreakNum), 370) });
|
|
14840
14821
|
} else {
|
|
14841
|
-
drawText(playStyleData, { hy: 5, siz: getFontSize2(
|
|
14822
|
+
drawText(settingData.playStyleData, { hy: 5, siz: getFontSize2(settingData.playStyleData, 370, { maxSiz: 15 }) });
|
|
14842
14823
|
}
|
|
14843
14824
|
Object.keys(jdgScoreObj).forEach(score => {
|
|
14844
14825
|
drawText(g_lblNameObj[`j_${score}`], { hy: 7 + jdgScoreObj[score].pos, color: jdgScoreObj[score].dfColor });
|
|
@@ -14983,7 +14964,7 @@ const resultInit = () => {
|
|
|
14983
14964
|
makeResultSprite.style.pointerEvents = g_headerObj.maskresultButton ? C_DIS_AUTO : C_DIS_NONE;
|
|
14984
14965
|
|
|
14985
14966
|
// リザルトモーションの0フレーム対応
|
|
14986
|
-
g_animationData.filter(sprite => g_scoreObj[`${sprite}ResultFrameNum`] === 0 && g_headerObj[`${sprite}ResultData`][0] !== undefined)
|
|
14967
|
+
g_animationData.filter(sprite => g_scoreObj[`${sprite}ResultFrameNum`] === 0 && g_headerObj[`${sprite}ResultData`]?.[0] !== undefined)
|
|
14987
14968
|
.forEach(sprite => {
|
|
14988
14969
|
g_scoreObj[`${sprite}ResultFrameNum`] = g_animationFunc.draw[sprite](0, `result`, sprite);
|
|
14989
14970
|
g_headerObj[`${sprite}ResultData`][0] = undefined;
|
|
@@ -15032,6 +15013,99 @@ const resultInit = () => {
|
|
|
15032
15013
|
g_skinJsObj.result.forEach(func => func());
|
|
15033
15014
|
};
|
|
15034
15015
|
|
|
15016
|
+
/**
|
|
15017
|
+
* 選択した設定の情報を取得
|
|
15018
|
+
* @param {string} _shuffleName
|
|
15019
|
+
* @returns {object}
|
|
15020
|
+
*/
|
|
15021
|
+
const getSelectedSettingList = (_shuffleName) => {
|
|
15022
|
+
|
|
15023
|
+
const transKeyName = getTransKeyName();
|
|
15024
|
+
/**
|
|
15025
|
+
* プレイスタイルのカスタム有無
|
|
15026
|
+
* @param {string} _flg
|
|
15027
|
+
* @param {string|boolean} _defaultSet デフォルト値
|
|
15028
|
+
* @param {string} _displayText
|
|
15029
|
+
* @returns {string}
|
|
15030
|
+
*/
|
|
15031
|
+
const withOptions = (_flg, _defaultSet, _displayText = _flg) =>
|
|
15032
|
+
(_flg !== _defaultSet ? getStgDetailName(_displayText) : ``);
|
|
15033
|
+
|
|
15034
|
+
const withDisplays = (_flg, _defaultSet, _displayText = _flg) =>
|
|
15035
|
+
(_flg !== _defaultSet
|
|
15036
|
+
? getStgDetailName(_displayText) + (_flg === C_FLG_OFF ? `` : ` : ${getStgDetailName(_flg)}`) : ``);
|
|
15037
|
+
|
|
15038
|
+
// 譜面名の組み立て処理 (Ex: 9Akey / Normal-Leftless (maker) [X-Mirror])
|
|
15039
|
+
const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
|
|
15040
|
+
const difDatas = [
|
|
15041
|
+
`${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} ${keyUnitName} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`,
|
|
15042
|
+
`${withOptions(g_autoPlaysBase.includes(g_stateObj.autoPlay), true, `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`)}`,
|
|
15043
|
+
`${withOptions(g_headerObj.makerView, false, `(${g_headerObj.creatorNames[g_stateObj.scoreId]})`)}`,
|
|
15044
|
+
`${withOptions(g_stateObj.shuffle, C_FLG_OFF, `[${_shuffleName}]`)}`
|
|
15045
|
+
];
|
|
15046
|
+
let difData = difDatas.filter(value => value !== ``).join(` `);
|
|
15047
|
+
const difDataForImage = difDatas.filter((value, j) => value !== `` && j !== 2).join(` `);
|
|
15048
|
+
|
|
15049
|
+
// 設定の組み立て処理 (Ex: 4x, Brake, Reverse, Sudden+, NoRecovery)
|
|
15050
|
+
let playStyleData = [
|
|
15051
|
+
`${g_stateObj.speed}${g_lblNameObj.multi}`,
|
|
15052
|
+
withOptions(g_stateObj.motion, C_FLG_OFF),
|
|
15053
|
+
`${withOptions(g_stateObj.reverse, C_FLG_OFF,
|
|
15054
|
+
getStgDetailName(g_stateObj.scroll !== '---' ? 'R-' : 'Reverse'))}${withOptions(g_stateObj.scroll, '---')}`,
|
|
15055
|
+
withOptions(g_stateObj.appearance, `Visible`) +
|
|
15056
|
+
((g_appearanceRanges.includes(g_stateObj.appearance) && g_stateObj.filterLock === C_FLG_ON) ? `(${g_hidSudObj.filterPos}%)` : ``),
|
|
15057
|
+
withOptions(g_stateObj.gauge, g_settings.gauges[0]),
|
|
15058
|
+
withOptions(g_stateObj.playWindow, `Default`),
|
|
15059
|
+
withOptions(g_stateObj.stepArea, `Default`),
|
|
15060
|
+
withOptions(g_stateObj.frzReturn, C_FLG_OFF, `FR:${g_stateObj.frzReturn}`),
|
|
15061
|
+
withOptions(g_stateObj.shaking, C_FLG_OFF),
|
|
15062
|
+
withOptions(g_stateObj.effect, C_FLG_OFF),
|
|
15063
|
+
withOptions(g_stateObj.camoufrage, C_FLG_OFF, `Cmf:${g_stateObj.camoufrage}`),
|
|
15064
|
+
withOptions(g_stateObj.swapping, C_FLG_OFF, `Swap:${g_stateObj.swapping}`),
|
|
15065
|
+
withOptions(g_stateObj.judgRange, `Normal`, `Judg:${g_stateObj.judgRange}`),
|
|
15066
|
+
].filter(value => value !== ``).join(`, `);
|
|
15067
|
+
|
|
15068
|
+
// Display設定の組み立て処理 (Ex: Step : FlatBar, Judge, Life : OFF)
|
|
15069
|
+
let displayData = [
|
|
15070
|
+
withDisplays(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone),
|
|
15071
|
+
withDisplays(g_stateObj.d_judgment, C_FLG_ON, g_lblNameObj.rd_Judgment),
|
|
15072
|
+
withDisplays(g_stateObj.d_fastslow, C_FLG_ON, g_lblNameObj.rd_FastSlow),
|
|
15073
|
+
withDisplays(g_stateObj.d_lifegauge, C_FLG_ON, g_lblNameObj.rd_LifeGauge),
|
|
15074
|
+
withDisplays(g_stateObj.d_score, C_FLG_ON, g_lblNameObj.rd_Score),
|
|
15075
|
+
withDisplays(g_stateObj.d_musicinfo, C_FLG_ON, g_lblNameObj.rd_MusicInfo),
|
|
15076
|
+
withDisplays(g_stateObj.d_filterline, C_FLG_ON, g_lblNameObj.rd_FilterLine),
|
|
15077
|
+
].filter(value => value !== ``).join(`, `);
|
|
15078
|
+
if (displayData === ``) {
|
|
15079
|
+
displayData = `All Visible`;
|
|
15080
|
+
} else {
|
|
15081
|
+
// 表示設定のOFF項目を末尾にまとめる
|
|
15082
|
+
const displayList = displayData.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
15083
|
+
displayData = displayList.join(`, `);
|
|
15084
|
+
if (!displayList.at(-1).includes(`:`)) {
|
|
15085
|
+
displayData += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
15086
|
+
}
|
|
15087
|
+
}
|
|
15088
|
+
|
|
15089
|
+
let display2Data = [
|
|
15090
|
+
withDisplays(g_stateObj.d_speed, C_FLG_ON, g_lblNameObj.rd_Speed),
|
|
15091
|
+
withDisplays(g_stateObj.d_color, C_FLG_ON, g_lblNameObj.rd_Color),
|
|
15092
|
+
withDisplays(g_stateObj.d_lyrics, C_FLG_ON, g_lblNameObj.rd_Lyrics),
|
|
15093
|
+
withDisplays(g_stateObj.d_background, C_FLG_ON, g_lblNameObj.rd_Background),
|
|
15094
|
+
withDisplays(g_stateObj.d_arroweffect, C_FLG_ON, g_lblNameObj.rd_ArrowEffect),
|
|
15095
|
+
withDisplays(g_stateObj.d_special, C_FLG_ON, g_lblNameObj.rd_Special),
|
|
15096
|
+
].filter(value => value !== ``).join(`, `);
|
|
15097
|
+
if (display2Data !== ``) {
|
|
15098
|
+
// 表示設定のOFF項目を末尾にまとめる
|
|
15099
|
+
const display2List = display2Data.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
15100
|
+
display2Data = display2List.join(`, `);
|
|
15101
|
+
if (!display2List.at(-1).includes(`:`)) {
|
|
15102
|
+
display2Data += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
15103
|
+
}
|
|
15104
|
+
}
|
|
15105
|
+
|
|
15106
|
+
return { difData, difDataForImage, playStyleData, displayData, display2Data };
|
|
15107
|
+
};
|
|
15108
|
+
|
|
15035
15109
|
/**
|
|
15036
15110
|
* リザルトフォーマットの整形処理
|
|
15037
15111
|
* @param {string} _format
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/02/
|
|
8
|
+
* Revised : 2026/02/23 (v44.5.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -375,6 +375,27 @@ const updateWindowSiz = () => {
|
|
|
375
375
|
x: g_btnX(), y: 5, w: g_btnWidth(1 / 5), h: 16, siz: 12,
|
|
376
376
|
title: g_msgObj.dataSave, borderStyle: `solid`,
|
|
377
377
|
},
|
|
378
|
+
btnSettingSummary: {
|
|
379
|
+
x: g_btnX(), y: g_sHeight - 200, w: g_limitObj.setMiniWidth / 2, h: 100,
|
|
380
|
+
},
|
|
381
|
+
lblSummaryHeader: {
|
|
382
|
+
x: 0, y: 0, w: 150, h: 20, siz: 16, align: C_ALIGN_LEFT,
|
|
383
|
+
},
|
|
384
|
+
lblSummaryEnvironment: {
|
|
385
|
+
x: 150, y: 5, w: g_btnWidth() - 200, h: 20, siz: 12, align: C_ALIGN_LEFT,
|
|
386
|
+
},
|
|
387
|
+
lblSummaryDifInfo: {
|
|
388
|
+
x: 0, y: 20, w: g_btnWidth() - 50, h: 20, siz: 12, align: C_ALIGN_LEFT,
|
|
389
|
+
},
|
|
390
|
+
lblSummaryPlaystyleInfo: {
|
|
391
|
+
x: 0, y: 35, w: g_btnWidth() - 50, h: 20, siz: 12, align: C_ALIGN_LEFT,
|
|
392
|
+
},
|
|
393
|
+
lblSummaryDisplayInfo: {
|
|
394
|
+
x: 0, y: 50, w: g_btnWidth() - 50, h: 20, siz: 12, align: C_ALIGN_LEFT,
|
|
395
|
+
},
|
|
396
|
+
lblSummaryDisplay2Info: {
|
|
397
|
+
x: 0, y: 65, w: g_btnWidth() - 50, h: 20, siz: 12, align: C_ALIGN_LEFT,
|
|
398
|
+
},
|
|
378
399
|
|
|
379
400
|
lblMusicInfo: {
|
|
380
401
|
x: g_btnX(1 / 4), y: 0, w: g_btnWidth(3 / 4), h: 20, align: C_ALIGN_RIGHT
|
|
@@ -1112,6 +1133,7 @@ const g_stateObj = {
|
|
|
1112
1133
|
dataSaveFlg: true,
|
|
1113
1134
|
scoreDetailViewFlg: false,
|
|
1114
1135
|
scoreDetail: `Speed`,
|
|
1136
|
+
settingSummaryVisible: false,
|
|
1115
1137
|
|
|
1116
1138
|
d_stepzone: C_FLG_ON,
|
|
1117
1139
|
d_judgment: C_FLG_ON,
|
|
@@ -1347,6 +1369,7 @@ const g_moveSettingWindow = (_changePageFlg = true, _direction = 1) => {
|
|
|
1347
1369
|
g_settings.settingWindowNum = nextPos(g_settings.settingWindowNum, _direction, g_settings.settingWindows.length);
|
|
1348
1370
|
}
|
|
1349
1371
|
g_settings.settingWindows[g_settings.settingWindowNum]();
|
|
1372
|
+
updateSettingSummary();
|
|
1350
1373
|
};
|
|
1351
1374
|
|
|
1352
1375
|
/**
|
|
@@ -2365,6 +2388,7 @@ const g_shortcutObj = {
|
|
|
2365
2388
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
2366
2389
|
ShiftRight_Tab: { id: `btnBack` },
|
|
2367
2390
|
Tab: { id: `btnDisplay` },
|
|
2391
|
+
KeyU: { id: `btnSettingSummary` },
|
|
2368
2392
|
},
|
|
2369
2393
|
difSelector: {
|
|
2370
2394
|
ShiftLeft_KeyD: { id: `lnkDifficultyL` },
|
|
@@ -2397,6 +2421,7 @@ const g_shortcutObj = {
|
|
|
2397
2421
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
2398
2422
|
ShiftRight_Tab: { id: `btnBack` },
|
|
2399
2423
|
Tab: { id: `btnDisplay` },
|
|
2424
|
+
KeyU: { id: `btnSettingSummary` },
|
|
2400
2425
|
},
|
|
2401
2426
|
settingsDisplay: {
|
|
2402
2427
|
ShiftLeft_KeyA: { id: `lnkAppearanceL` },
|
|
@@ -2504,6 +2529,7 @@ const g_shortcutObj = {
|
|
|
2504
2529
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
2505
2530
|
ShiftRight_Tab: { id: `btnBack` },
|
|
2506
2531
|
Tab: { id: `btnSettings` },
|
|
2532
|
+
KeyU: { id: `btnSettingSummary` },
|
|
2507
2533
|
},
|
|
2508
2534
|
exSetting: {
|
|
2509
2535
|
ShiftLeft_KeyP: { id: `lnkPlayWindowL` },
|
|
@@ -2533,6 +2559,7 @@ const g_shortcutObj = {
|
|
|
2533
2559
|
ShiftLeft_Tab: { id: `btnBack` },
|
|
2534
2560
|
ShiftRight_Tab: { id: `btnBack` },
|
|
2535
2561
|
Tab: { id: `btnexSetting` },
|
|
2562
|
+
KeyU: { id: `btnSettingSummary` },
|
|
2536
2563
|
},
|
|
2537
2564
|
keyConfig: {
|
|
2538
2565
|
Escape: { id: `btnBack` },
|
|
@@ -2594,10 +2621,10 @@ const g_btnPatterns = {
|
|
|
2594
2621
|
title: { Start: 0, Comment: -10, MusicSelectRandom: -10 },
|
|
2595
2622
|
dataMgt: { Back: 0, Environment: -35, Highscores: -35, CustomKey: -35, Others: -35 },
|
|
2596
2623
|
precondition: { Back: 0 },
|
|
2597
|
-
option: { Back: 0, KeyConfig: 0, Play: 0, Display: -5, Save: -10, Graph: -25 },
|
|
2598
|
-
difSelector: {},
|
|
2599
|
-
settingsDisplay: { Back: 0, KeyConfig: 0, Play: 0, Save: -10, Settings: -5 },
|
|
2600
|
-
exSetting: { Back: 0, KeyConfig: 0, Play: 0, exSetting: -5, Save: -10 },
|
|
2624
|
+
option: { Back: 0, KeyConfig: 0, Play: 0, Display: -5, Save: -10, Graph: -25, SettingSummary: -10 },
|
|
2625
|
+
difSelector: { SettingSummary: -10 },
|
|
2626
|
+
settingsDisplay: { Back: 0, KeyConfig: 0, Play: 0, Save: -10, Settings: -5, SettingSummary: -10 },
|
|
2627
|
+
exSetting: { Back: 0, KeyConfig: 0, Play: 0, exSetting: -5, Save: -10, SettingSummary: -10 },
|
|
2601
2628
|
loadingIos: { Play: 0 },
|
|
2602
2629
|
keyConfig: { Back: -3, Play: 0 },
|
|
2603
2630
|
result: { Back: -5, Copy: -5, Tweet: -5, Gitter: -5, Retry: 0, GaugeTransition: -15 },
|
|
@@ -4024,6 +4051,7 @@ const g_lblNameObj = {
|
|
|
4024
4051
|
percent: `%`,
|
|
4025
4052
|
pixel: `px`,
|
|
4026
4053
|
filterLock: `Lock`,
|
|
4054
|
+
settingSummary: `Setting Summary`,
|
|
4027
4055
|
|
|
4028
4056
|
sc_speed: `←→`,
|
|
4029
4057
|
sc_scroll: `R/<br>↑↓`,
|