danoniplus 50.5.5 → 50.5.6
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 +6 -5
- package/js/lib/dataLoader.js +24 -5
- package/js/lib/mainWindow.js +2 -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 : 2026/
|
|
7
|
+
* Revised : 2026/10/07
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 50.5.
|
|
12
|
-
const g_revisedDate = `2026/
|
|
11
|
+
const g_version = `Ver 50.5.6`;
|
|
12
|
+
const g_revisedDate = `2026/10/07`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -648,7 +648,7 @@ const formatObject = (_obj, _indent = 0, { colorFmt = true, rootKey = `` } = {})
|
|
|
648
648
|
if (_list.findIndex(val => val === rootKey) >= 0) {
|
|
649
649
|
let result = `[`;
|
|
650
650
|
for (let j = 0; j < _obj.length; j += _numOfSet) {
|
|
651
|
-
result += `<br>${nestedIndent}${_obj[j]}: ${_obj[j + 1]}`;
|
|
651
|
+
result += `<br>${nestedIndent}${escapeHtml(_obj[j])}: ${escapeHtml(_obj[j + 1])}`;
|
|
652
652
|
for (let k = 0; k < _numOfSet - 2; k++) {
|
|
653
653
|
const idx = j + k + 2;
|
|
654
654
|
if (idx < _obj.length) {
|
|
@@ -711,7 +711,8 @@ const formatObject = (_obj, _indent = 0, { colorFmt = true, rootKey = `` } = {})
|
|
|
711
711
|
})
|
|
712
712
|
: Object.entries(_obj).map(([key, value]) => {
|
|
713
713
|
const formattedValue = getNextObject(value, rootKey === `` ? key : rootKey);
|
|
714
|
-
|
|
714
|
+
const formattedKey = colorFmt ? escapeHtml(key) : key;
|
|
715
|
+
return `<br>${nestedIndent}"${formattedKey}": ${formattedValue}`;
|
|
715
716
|
})).filter(val => !hasVal(val) || val !== `----`);
|
|
716
717
|
|
|
717
718
|
// 配列なら[]で囲む、オブジェクトなら{}で囲む
|
package/js/lib/dataLoader.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2026/09/13
|
|
8
|
-
* Revised : 2026/
|
|
8
|
+
* Revised : 2026/10/07 (v50.5.6)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -306,12 +306,15 @@ const musicAfterLoaded = () => new Promise((resolve, reject) => {
|
|
|
306
306
|
}
|
|
307
307
|
});
|
|
308
308
|
|
|
309
|
+
// リトライ時にプレイ用キー割り当てを復元するための退避 (初回保存でメモリが既定値へ戻るため)
|
|
310
|
+
let g_keyCtrlBackup = {};
|
|
311
|
+
|
|
309
312
|
/**
|
|
310
313
|
* 譜面データの変換処理
|
|
311
314
|
* - 音源データの状態に依存しない部分のみを担う(g_audio非参照)
|
|
312
315
|
* - loadMusic経由(並行フロー)、executeRetry経由(曲中リトライ)の両方から呼ばれる
|
|
313
316
|
*/
|
|
314
|
-
const prepareScoreData = () => {
|
|
317
|
+
const prepareScoreData = (_retryFlg = false) => {
|
|
315
318
|
|
|
316
319
|
const tkObj = getKeyInfo();
|
|
317
320
|
const [keyCtrlPtn, keyNum] = [tkObj.keyCtrlPtn, tkObj.keyNum];
|
|
@@ -457,7 +460,7 @@ const prepareScoreData = () => {
|
|
|
457
460
|
pushArrows(g_scoreObj, speedOnFrame, arrivalFrame);
|
|
458
461
|
|
|
459
462
|
// メインに入る前の最終初期化処理
|
|
460
|
-
getArrowSettings();
|
|
463
|
+
getArrowSettings(_retryFlg);
|
|
461
464
|
|
|
462
465
|
// ユーザカスタムイベント
|
|
463
466
|
safeExecuteCustomHooks(`g_customJsObj.loading`, g_customJsObj.loading);
|
|
@@ -2137,13 +2140,22 @@ const invertSpecificTransforms = (cssString, exceptList = []) => {
|
|
|
2137
2140
|
/**
|
|
2138
2141
|
* メイン画面前の初期化処理
|
|
2139
2142
|
*/
|
|
2140
|
-
const getArrowSettings = () => {
|
|
2143
|
+
const getArrowSettings = (_retryFlg = false) => {
|
|
2141
2144
|
|
|
2142
2145
|
g_attrObj = {};
|
|
2143
2146
|
const tkObj = getKeyInfo();
|
|
2144
2147
|
const [keyCtrlPtn, keyNum, posMax, divideCnt] =
|
|
2145
2148
|
[tkObj.keyCtrlPtn, tkObj.keyNum, tkObj.posMax, tkObj.divideCnt];
|
|
2146
2149
|
|
|
2150
|
+
// 新しいプレイ開始時は前回プレイの退避を破棄 (リトライ時は保持して復元に使う)
|
|
2151
|
+
if (!_retryFlg) {
|
|
2152
|
+
g_keyCtrlBackup = {};
|
|
2153
|
+
}
|
|
2154
|
+
// リトライ時: 退避済みのキー割り当てをメモリへ戻してから以降の処理を行う
|
|
2155
|
+
const restoredFlg = _retryFlg && g_keyCtrlBackup[keyCtrlPtn] !== undefined;
|
|
2156
|
+
if (restoredFlg) {
|
|
2157
|
+
g_keyObj[`keyCtrl${keyCtrlPtn}`] = structuredClone(g_keyCtrlBackup[keyCtrlPtn]);
|
|
2158
|
+
}
|
|
2147
2159
|
g_keyCopyLists.simpleDef.forEach(header => updateKeyInfo(header, keyCtrlPtn));
|
|
2148
2160
|
g_headerObj.tuning = g_headerObj.creatorNames[g_stateObj.scoreId];
|
|
2149
2161
|
|
|
@@ -2532,7 +2544,13 @@ const getArrowSettings = () => {
|
|
|
2532
2544
|
}
|
|
2533
2545
|
|
|
2534
2546
|
// リバース、キーコンフィグなどをローカルストレージへ保存(Data Save: ON かつ別キーモードで無い場合)
|
|
2535
|
-
if (
|
|
2547
|
+
if (_retryFlg) {
|
|
2548
|
+
// リトライ時は初回に保存済みのため再保存しない (prevKey等も触らない)
|
|
2549
|
+
// 復元したキー割り当ては、初回保存時と同様にメモリ上を既定値へ戻す
|
|
2550
|
+
if (restoredFlg) {
|
|
2551
|
+
g_keyObj[`keyCtrl${keyCtrlPtn}`] = structuredClone(g_keyObj[`keyCtrl${keyCtrlPtn}d`]);
|
|
2552
|
+
}
|
|
2553
|
+
} else if (g_stateObj.dataSaveFlg && !hasVal(g_keyObj[`transKey${keyCtrlPtn}`])) {
|
|
2536
2554
|
|
|
2537
2555
|
// 次回キーコンフィグ画面へ戻ったとき、保存済みキーコンフィグ設定が表示されるようにする
|
|
2538
2556
|
g_keyObj.prevKey = `Dummy`;
|
|
@@ -2554,6 +2572,7 @@ const getArrowSettings = () => {
|
|
|
2554
2572
|
storageObj[`keyCtrl${addKey}`] = setKeyCtrl(g_localKeyStorage, keyNum, keyCtrlPtn);
|
|
2555
2573
|
if (g_keyObj.currentPtn !== -1) {
|
|
2556
2574
|
storageObj[`keyCtrlPtn${addKey}`] = g_keyObj.currentPtn;
|
|
2575
|
+
g_keyCtrlBackup[keyCtrlPtn] = structuredClone(g_keyObj[`keyCtrl${keyCtrlPtn}`]);
|
|
2557
2576
|
g_keyObj[`keyCtrl${keyCtrlPtn}`] = structuredClone(g_keyObj[`keyCtrl${keyCtrlPtn}d`]);
|
|
2558
2577
|
}
|
|
2559
2578
|
|
package/js/lib/mainWindow.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2026/09/13
|
|
8
|
-
* Revised :
|
|
8
|
+
* Revised : 2026/10/07 (v50.5.6)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -2012,7 +2012,7 @@ const executeRetry = async (_logLabel = `Retry`) => {
|
|
|
2012
2012
|
clearWindow(`Main`);
|
|
2013
2013
|
await musicAfterLoaded();
|
|
2014
2014
|
await loadChartFile();
|
|
2015
|
-
prepareScoreData();
|
|
2015
|
+
prepareScoreData(true);
|
|
2016
2016
|
mainInit();
|
|
2017
2017
|
} catch (e) {
|
|
2018
2018
|
console.warn(`${_logLabel} audio load error: ${e}`);
|