danoniplus 44.4.1 → 44.5.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.
- package/js/danoni_main.js +177 -100
- 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.1`;
|
|
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 = g_headerObj.baseBrightFlg ? `#ffffffcc` : `#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
|
/**
|
|
@@ -7462,6 +7512,7 @@ const setDifficulty = (_initFlg) => {
|
|
|
7462
7512
|
g_headerObj.excessiveUse = g_headerObj.excessiveUses[g_stateObj.scoreId];
|
|
7463
7513
|
if (g_headerObj.excessiveUse) {
|
|
7464
7514
|
setExcessive(document.getElementById(`lnkExcessive`), g_stateObj.excessive === C_FLG_ON);
|
|
7515
|
+
lblExcessive.style.display = C_DIS_NONE;
|
|
7465
7516
|
lnkExcessive.style.display = C_DIS_INHERIT;
|
|
7466
7517
|
} else {
|
|
7467
7518
|
g_stateObj.excessiveChgFlg = false;
|
|
@@ -7592,6 +7643,7 @@ const createOptionWindow = _sprite => {
|
|
|
7592
7643
|
}
|
|
7593
7644
|
g_stateObj.scoreDetailViewFlg = true;
|
|
7594
7645
|
scoreDetail.style.visibility = `visible`;
|
|
7646
|
+
visibleSettingSummary(false);
|
|
7595
7647
|
|
|
7596
7648
|
// 表示内容を非表示化、ボタン色をデフォルトに戻す
|
|
7597
7649
|
$id(`detail${g_stateObj.scoreDetail}`).visibility = `hidden`;
|
|
@@ -7640,6 +7692,7 @@ const createOptionWindow = _sprite => {
|
|
|
7640
7692
|
g_stateObj.scoreDetailViewFlg = !g_stateObj.scoreDetailViewFlg;
|
|
7641
7693
|
scoreDetail.style.visibility = visibles[Number(g_stateObj.scoreDetailViewFlg)];
|
|
7642
7694
|
detailObj.style.visibility = visibles[Number(g_stateObj.scoreDetailViewFlg)];
|
|
7695
|
+
visibleSettingSummary(g_stateObj.scoreDetailViewFlg ? false : g_stateObj.settingSummaryVisible);
|
|
7643
7696
|
|
|
7644
7697
|
// Qキーを押したときのカーソル位置を先頭に初期化
|
|
7645
7698
|
if (_resetFlg) {
|
|
@@ -7931,6 +7984,10 @@ const setSetting = (_scrollNum, _settingName, _unitName = ``, _roundNum = 0, { f
|
|
|
7931
7984
|
document.getElementById(`lnk${toCapitalize(_settingName)}`).textContent =
|
|
7932
7985
|
`${getStgDetailName(g_stateObj[_settingName])}${_unitName}${g_localStorage[_settingName] === g_stateObj[_settingName] ? ' *' : ''}`;
|
|
7933
7986
|
func();
|
|
7987
|
+
|
|
7988
|
+
if (document.getElementById(`settingSumSprite`) !== null) {
|
|
7989
|
+
updateSettingSummary();
|
|
7990
|
+
}
|
|
7934
7991
|
};
|
|
7935
7992
|
|
|
7936
7993
|
/**
|
|
@@ -7972,6 +8029,7 @@ const setReverse = _btn => {
|
|
|
7972
8029
|
g_settings.reverseNum = (g_settings.reverseNum + 1) % 2;
|
|
7973
8030
|
g_stateObj.reverse = g_settings.reverses[g_settings.reverseNum];
|
|
7974
8031
|
setReverseView(_btn);
|
|
8032
|
+
updateSettingSummary();
|
|
7975
8033
|
}
|
|
7976
8034
|
};
|
|
7977
8035
|
|
|
@@ -8422,6 +8480,7 @@ const createSettingsDisplayWindow = _sprite => {
|
|
|
8422
8480
|
|
|
8423
8481
|
withShortCutDesc();
|
|
8424
8482
|
interlockingButton(g_headerObj, _name, nextBarColor, prevBarColor, true);
|
|
8483
|
+
updateSettingSummary();
|
|
8425
8484
|
};
|
|
8426
8485
|
|
|
8427
8486
|
// Displayボタン初期化
|
|
@@ -8488,11 +8547,14 @@ const createSettingsDisplayWindow = _sprite => {
|
|
|
8488
8547
|
|
|
8489
8548
|
_btn.classList.replace(g_cssObj[`button_Rev${prevLock}`],
|
|
8490
8549
|
g_cssObj[`button_Rev${g_stateObj.filterLock}`]);
|
|
8550
|
+
updateSettingSummary();
|
|
8491
8551
|
};
|
|
8492
8552
|
|
|
8493
8553
|
const appearanceSlider = document.getElementById(`appearanceSlider`);
|
|
8494
|
-
appearanceSlider.addEventListener(`input`, () =>
|
|
8495
|
-
g_hidSudObj.filterPos = inputSlider(appearanceSlider, lblAppearancePos, `appearance`)
|
|
8554
|
+
appearanceSlider.addEventListener(`input`, () => {
|
|
8555
|
+
g_hidSudObj.filterPos = inputSlider(appearanceSlider, lblAppearancePos, `appearance`);
|
|
8556
|
+
updateSettingSummary();
|
|
8557
|
+
}, false);
|
|
8496
8558
|
|
|
8497
8559
|
const dispAppearanceSlider = () => {
|
|
8498
8560
|
[`lblAppearanceBar`, `lnkLockBtn`, `lnkfilterLine`].forEach(obj =>
|
|
@@ -13476,8 +13538,8 @@ const changeAppearanceFilter = (_num = 10) => {
|
|
|
13476
13538
|
addY(`filterBar${bottomNum + j}`, `appearance`, parseFloat($id(`arrowSprite${j + 1}`).top) + bottomDist);
|
|
13477
13539
|
|
|
13478
13540
|
if (![`Default`, `Halfway`].includes(g_stateObj.stepArea)) {
|
|
13479
|
-
addY(`filterBar${bottomNum + j}_HS`, `appearance`, parseFloat($id(`arrowSprite${j}`).top) +
|
|
13480
|
-
addY(`filterBar${topNum + j}_HS`, `appearance`, parseFloat($id(`arrowSprite${j + 1}`).top) +
|
|
13541
|
+
addY(`filterBar${bottomNum + j}_HS`, `appearance`, parseFloat($id(`arrowSprite${j}`).top) + bottomDist);
|
|
13542
|
+
addY(`filterBar${topNum + j}_HS`, `appearance`, parseFloat($id(`arrowSprite${j + 1}`).top) + topDist);
|
|
13481
13543
|
}
|
|
13482
13544
|
}
|
|
13483
13545
|
|
|
@@ -14273,87 +14335,7 @@ const resultInit = () => {
|
|
|
14273
14335
|
const transKeyName = getTransKeyName();
|
|
14274
14336
|
const orgShuffleFlg = g_keyObj[`shuffle${keyCtrlPtn}`].filter((shuffleGr, j) => shuffleGr !== g_keyObj[`shuffle${keyCtrlPtn}_0d`][j]).length === 0;
|
|
14275
14337
|
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
|
-
}
|
|
14338
|
+
const settingData = getSelectedSettingList(shuffleName);
|
|
14357
14339
|
|
|
14358
14340
|
const [lblRX, dataRX] = [20, 60];
|
|
14359
14341
|
multiAppend(playDataWindow,
|
|
@@ -14361,12 +14343,12 @@ const resultInit = () => {
|
|
|
14361
14343
|
makeCssResultPlayData(`lblMusicData`, dataRX, g_cssObj.result_style, 0, mTitleForView[0]),
|
|
14362
14344
|
makeCssResultPlayData(`lblMusicData2`, dataRX, g_cssObj.result_style, 1, mTitleForView[1]),
|
|
14363
14345
|
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),
|
|
14346
|
+
makeCssResultPlayData(`lblDifData`, dataRX, g_cssObj.result_style, 2, settingData.difData),
|
|
14365
14347
|
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),
|
|
14348
|
+
makeCssResultPlayData(`lblStyleData`, dataRX, g_cssObj.result_style, 3, settingData.playStyleData),
|
|
14367
14349
|
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),
|
|
14350
|
+
makeCssResultPlayData(`lblDisplayData`, dataRX, g_cssObj.result_style, 4, settingData.displayData),
|
|
14351
|
+
makeCssResultPlayData(`lblDisplay2Data`, dataRX, g_cssObj.result_style, 5, settingData.display2Data),
|
|
14370
14352
|
);
|
|
14371
14353
|
|
|
14372
14354
|
// 設定項目が多い場合に2行に分解して表示する処理
|
|
@@ -14690,7 +14672,7 @@ const resultInit = () => {
|
|
|
14690
14672
|
g_localStorage.highscores[scoreName].dateTime = currentDateTime;
|
|
14691
14673
|
g_localStorage.highscores[scoreName].rankMark = rankMark;
|
|
14692
14674
|
g_localStorage.highscores[scoreName].rankColor = rankColor;
|
|
14693
|
-
g_localStorage.highscores[scoreName].playStyle = playStyleData;
|
|
14675
|
+
g_localStorage.highscores[scoreName].playStyle = settingData.playStyleData;
|
|
14694
14676
|
|
|
14695
14677
|
g_localStorage.highscores[scoreName].fast = g_resultObj.fast;
|
|
14696
14678
|
g_localStorage.highscores[scoreName].slow = g_resultObj.slow;
|
|
@@ -14764,6 +14746,7 @@ const resultInit = () => {
|
|
|
14764
14746
|
// X (Twitter)用リザルト
|
|
14765
14747
|
// スコアを上塗りする可能性があるため、カスタムイベント後に配置
|
|
14766
14748
|
const hashTag = (hasVal(g_headerObj.hashTag) ? ` ${g_headerObj.hashTag}` : ``);
|
|
14749
|
+
const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
|
|
14767
14750
|
const keyUnitAbbName = keyUnitName.slice(0, 1) || ``;
|
|
14768
14751
|
let tweetDifData = `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName}${getStgDetailName(keyUnitAbbName + '-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}`;
|
|
14769
14752
|
if (g_stateObj.shuffle !== `OFF`) {
|
|
@@ -14785,7 +14768,8 @@ const resultInit = () => {
|
|
|
14785
14768
|
const resultParams = {
|
|
14786
14769
|
tuning: g_headerObj.tuning,
|
|
14787
14770
|
highscore: g_resultObj,
|
|
14788
|
-
|
|
14771
|
+
playStyleData: settingData.playStyleData,
|
|
14772
|
+
hashTag, musicTitle, tweetDifData, rankMark,
|
|
14789
14773
|
tweetExcessive, tweetFrzJdg, tweetMaxCombo, baseTwitUrl
|
|
14790
14774
|
};
|
|
14791
14775
|
let tweetResultTmp = makeResultText(g_headerObj.resultFormat, resultParams);
|
|
@@ -14832,13 +14816,13 @@ const resultInit = () => {
|
|
|
14832
14816
|
drawText(unEscapeHtml(mTitleForView[1]), { hy: 2 });
|
|
14833
14817
|
drawText(`${getEmojiForCanvas(g_emojiObj.memo)} ${unEscapeHtml(g_headerObj.tuning)} / ${getEmojiForCanvas(g_emojiObj.musical)} ${unEscapeHtml(artistName)}`,
|
|
14834
14818
|
{ hy: mTitleForView[1] !== `` ? 3 : 2, siz: 12 });
|
|
14835
|
-
drawText(unEscapeHtml(difDataForImage), { hy: 4 });
|
|
14819
|
+
drawText(unEscapeHtml(settingData.difDataForImage), { hy: 4 });
|
|
14836
14820
|
|
|
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) });
|
|
14821
|
+
if (settingData.playStyleData.length > 60) {
|
|
14822
|
+
drawText(settingData.playStyleData.slice(0, playStyleBreakNum), { hy: 5, siz: getFontSize2(settingData.playStyleData.slice(0, playStyleBreakNum), 370) });
|
|
14823
|
+
drawText(settingData.playStyleData.slice(playStyleBreakNum), { hy: 6, siz: getFontSize2(settingData.playStyleData.slice(playStyleBreakNum), 370) });
|
|
14840
14824
|
} else {
|
|
14841
|
-
drawText(playStyleData, { hy: 5, siz: getFontSize2(
|
|
14825
|
+
drawText(settingData.playStyleData, { hy: 5, siz: getFontSize2(settingData.playStyleData, 370, { maxSiz: 15 }) });
|
|
14842
14826
|
}
|
|
14843
14827
|
Object.keys(jdgScoreObj).forEach(score => {
|
|
14844
14828
|
drawText(g_lblNameObj[`j_${score}`], { hy: 7 + jdgScoreObj[score].pos, color: jdgScoreObj[score].dfColor });
|
|
@@ -14983,7 +14967,7 @@ const resultInit = () => {
|
|
|
14983
14967
|
makeResultSprite.style.pointerEvents = g_headerObj.maskresultButton ? C_DIS_AUTO : C_DIS_NONE;
|
|
14984
14968
|
|
|
14985
14969
|
// リザルトモーションの0フレーム対応
|
|
14986
|
-
g_animationData.filter(sprite => g_scoreObj[`${sprite}ResultFrameNum`] === 0 && g_headerObj[`${sprite}ResultData`][0] !== undefined)
|
|
14970
|
+
g_animationData.filter(sprite => g_scoreObj[`${sprite}ResultFrameNum`] === 0 && g_headerObj[`${sprite}ResultData`]?.[0] !== undefined)
|
|
14987
14971
|
.forEach(sprite => {
|
|
14988
14972
|
g_scoreObj[`${sprite}ResultFrameNum`] = g_animationFunc.draw[sprite](0, `result`, sprite);
|
|
14989
14973
|
g_headerObj[`${sprite}ResultData`][0] = undefined;
|
|
@@ -15032,6 +15016,99 @@ const resultInit = () => {
|
|
|
15032
15016
|
g_skinJsObj.result.forEach(func => func());
|
|
15033
15017
|
};
|
|
15034
15018
|
|
|
15019
|
+
/**
|
|
15020
|
+
* 選択した設定の情報を取得
|
|
15021
|
+
* @param {string} _shuffleName
|
|
15022
|
+
* @returns {object}
|
|
15023
|
+
*/
|
|
15024
|
+
const getSelectedSettingList = (_shuffleName) => {
|
|
15025
|
+
|
|
15026
|
+
const transKeyName = getTransKeyName();
|
|
15027
|
+
/**
|
|
15028
|
+
* プレイスタイルのカスタム有無
|
|
15029
|
+
* @param {string} _flg
|
|
15030
|
+
* @param {string|boolean} _defaultSet デフォルト値
|
|
15031
|
+
* @param {string} _displayText
|
|
15032
|
+
* @returns {string}
|
|
15033
|
+
*/
|
|
15034
|
+
const withOptions = (_flg, _defaultSet, _displayText = _flg) =>
|
|
15035
|
+
(_flg !== _defaultSet ? getStgDetailName(_displayText) : ``);
|
|
15036
|
+
|
|
15037
|
+
const withDisplays = (_flg, _defaultSet, _displayText = _flg) =>
|
|
15038
|
+
(_flg !== _defaultSet
|
|
15039
|
+
? getStgDetailName(_displayText) + (_flg === C_FLG_OFF ? `` : ` : ${getStgDetailName(_flg)}`) : ``);
|
|
15040
|
+
|
|
15041
|
+
// 譜面名の組み立て処理 (Ex: 9Akey / Normal-Leftless (maker) [X-Mirror])
|
|
15042
|
+
const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
|
|
15043
|
+
const difDatas = [
|
|
15044
|
+
`${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} ${keyUnitName} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`,
|
|
15045
|
+
`${withOptions(g_autoPlaysBase.includes(g_stateObj.autoPlay), true, `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`)}`,
|
|
15046
|
+
`${withOptions(g_headerObj.makerView, false, `(${g_headerObj.creatorNames[g_stateObj.scoreId]})`)}`,
|
|
15047
|
+
`${withOptions(g_stateObj.shuffle, C_FLG_OFF, `[${_shuffleName}]`)}`
|
|
15048
|
+
];
|
|
15049
|
+
let difData = difDatas.filter(value => value !== ``).join(` `);
|
|
15050
|
+
const difDataForImage = difDatas.filter((value, j) => value !== `` && j !== 2).join(` `);
|
|
15051
|
+
|
|
15052
|
+
// 設定の組み立て処理 (Ex: 4x, Brake, Reverse, Sudden+, NoRecovery)
|
|
15053
|
+
let playStyleData = [
|
|
15054
|
+
`${g_stateObj.speed}${g_lblNameObj.multi}`,
|
|
15055
|
+
withOptions(g_stateObj.motion, C_FLG_OFF),
|
|
15056
|
+
`${withOptions(g_stateObj.reverse, C_FLG_OFF,
|
|
15057
|
+
getStgDetailName(g_stateObj.scroll !== '---' ? 'R-' : 'Reverse'))}${withOptions(g_stateObj.scroll, '---')}`,
|
|
15058
|
+
withOptions(g_stateObj.appearance, `Visible`) +
|
|
15059
|
+
((g_appearanceRanges.includes(g_stateObj.appearance) && g_stateObj.filterLock === C_FLG_ON) ? `(${g_hidSudObj.filterPos}%)` : ``),
|
|
15060
|
+
withOptions(g_stateObj.gauge, g_settings.gauges[0]),
|
|
15061
|
+
withOptions(g_stateObj.playWindow, `Default`),
|
|
15062
|
+
withOptions(g_stateObj.stepArea, `Default`),
|
|
15063
|
+
withOptions(g_stateObj.frzReturn, C_FLG_OFF, `FR:${g_stateObj.frzReturn}`),
|
|
15064
|
+
withOptions(g_stateObj.shaking, C_FLG_OFF),
|
|
15065
|
+
withOptions(g_stateObj.effect, C_FLG_OFF),
|
|
15066
|
+
withOptions(g_stateObj.camoufrage, C_FLG_OFF, `Cmf:${g_stateObj.camoufrage}`),
|
|
15067
|
+
withOptions(g_stateObj.swapping, C_FLG_OFF, `Swap:${g_stateObj.swapping}`),
|
|
15068
|
+
withOptions(g_stateObj.judgRange, `Normal`, `Judg:${g_stateObj.judgRange}`),
|
|
15069
|
+
].filter(value => value !== ``).join(`, `);
|
|
15070
|
+
|
|
15071
|
+
// Display設定の組み立て処理 (Ex: Step : FlatBar, Judge, Life : OFF)
|
|
15072
|
+
let displayData = [
|
|
15073
|
+
withDisplays(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone),
|
|
15074
|
+
withDisplays(g_stateObj.d_judgment, C_FLG_ON, g_lblNameObj.rd_Judgment),
|
|
15075
|
+
withDisplays(g_stateObj.d_fastslow, C_FLG_ON, g_lblNameObj.rd_FastSlow),
|
|
15076
|
+
withDisplays(g_stateObj.d_lifegauge, C_FLG_ON, g_lblNameObj.rd_LifeGauge),
|
|
15077
|
+
withDisplays(g_stateObj.d_score, C_FLG_ON, g_lblNameObj.rd_Score),
|
|
15078
|
+
withDisplays(g_stateObj.d_musicinfo, C_FLG_ON, g_lblNameObj.rd_MusicInfo),
|
|
15079
|
+
withDisplays(g_stateObj.d_filterline, C_FLG_ON, g_lblNameObj.rd_FilterLine),
|
|
15080
|
+
].filter(value => value !== ``).join(`, `);
|
|
15081
|
+
if (displayData === ``) {
|
|
15082
|
+
displayData = `All Visible`;
|
|
15083
|
+
} else {
|
|
15084
|
+
// 表示設定のOFF項目を末尾にまとめる
|
|
15085
|
+
const displayList = displayData.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
15086
|
+
displayData = displayList.join(`, `);
|
|
15087
|
+
if (!displayList.at(-1).includes(`:`)) {
|
|
15088
|
+
displayData += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
15089
|
+
}
|
|
15090
|
+
}
|
|
15091
|
+
|
|
15092
|
+
let display2Data = [
|
|
15093
|
+
withDisplays(g_stateObj.d_speed, C_FLG_ON, g_lblNameObj.rd_Speed),
|
|
15094
|
+
withDisplays(g_stateObj.d_color, C_FLG_ON, g_lblNameObj.rd_Color),
|
|
15095
|
+
withDisplays(g_stateObj.d_lyrics, C_FLG_ON, g_lblNameObj.rd_Lyrics),
|
|
15096
|
+
withDisplays(g_stateObj.d_background, C_FLG_ON, g_lblNameObj.rd_Background),
|
|
15097
|
+
withDisplays(g_stateObj.d_arroweffect, C_FLG_ON, g_lblNameObj.rd_ArrowEffect),
|
|
15098
|
+
withDisplays(g_stateObj.d_special, C_FLG_ON, g_lblNameObj.rd_Special),
|
|
15099
|
+
].filter(value => value !== ``).join(`, `);
|
|
15100
|
+
if (display2Data !== ``) {
|
|
15101
|
+
// 表示設定のOFF項目を末尾にまとめる
|
|
15102
|
+
const display2List = display2Data.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
15103
|
+
display2Data = display2List.join(`, `);
|
|
15104
|
+
if (!display2List.at(-1).includes(`:`)) {
|
|
15105
|
+
display2Data += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
15106
|
+
}
|
|
15107
|
+
}
|
|
15108
|
+
|
|
15109
|
+
return { difData, difDataForImage, playStyleData, displayData, display2Data };
|
|
15110
|
+
};
|
|
15111
|
+
|
|
15035
15112
|
/**
|
|
15036
15113
|
* リザルトフォーマットの整形処理
|
|
15037
15114
|
* @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>↑↓`,
|