danoniplus 46.1.0 → 46.2.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/README.md +3 -2
- package/js/danoni_main.js +66 -30
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Dancing☆Onigiri (CW Edition)
|
|
2
2
|
|
|
3
3
|
[](https://github.com/cwtickle/danoniplus/actions?query=workflow%3ACodeQL)
|
|
4
|
-

|
|
5
|
-
[](https://discord.gg/YVWUdUGyMy)
|
|
4
|
+

|
|
5
|
+
[](https://discord.gg/YVWUdUGyMy)
|
|
6
|
+
[](https://deepwiki.com/cwtickle/danoniplus)
|
|
6
7
|
[](https://github.com/cwtickle/danoniplus/security/policy)
|
|
7
8
|
[](https://github.com/cwtickle/danoniplus/releases)
|
|
8
9
|
[](https://github.com/cwtickle/danoniplus/blob/develop/LICENSE)
|
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/03/
|
|
7
|
+
* Revised : 2026/03/20
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 46.1
|
|
12
|
-
const g_revisedDate = `2026/03/
|
|
11
|
+
const g_version = `Ver 46.2.1`;
|
|
12
|
+
const g_revisedDate = `2026/03/20`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -8783,11 +8783,14 @@ const exSettingInit = () => {
|
|
|
8783
8783
|
* 拡張設定込みの標準設定
|
|
8784
8784
|
* @param {any[]} _spriteList
|
|
8785
8785
|
* @param {string} _name
|
|
8786
|
-
* @param {{ defaultList?: string[], displayName?: string }} [options={}]
|
|
8786
|
+
* @param {{ defaultList?: string[], displayName?: string, func?: function, funcEx?: function }} [options={}]
|
|
8787
8787
|
* @param {string[]} [options.defaultList=[C_FLG_OFF]] 拡張設定未使用の設定リスト
|
|
8788
8788
|
* @param {string} [options.displayName='exSetting']
|
|
8789
|
+
* @param {function} [options.func=()=>true] 通常ボタン用追加関数
|
|
8790
|
+
* @param {function} [options.funcEx=()=>true] 拡張ボタン用追加関数
|
|
8789
8791
|
*/
|
|
8790
|
-
const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF], displayName = `exSetting
|
|
8792
|
+
const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF], displayName = `exSetting`,
|
|
8793
|
+
func = () => true, funcEx = () => true } = {}) => {
|
|
8791
8794
|
if (_spriteList?.[_name] === undefined) return;
|
|
8792
8795
|
|
|
8793
8796
|
/**
|
|
@@ -8815,11 +8818,13 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
8815
8818
|
createCss2Button(`lnk${toCapitalize(_name)}Type`, getStgDetailName(g_stateObj[`${_name}Type`]),
|
|
8816
8819
|
() => {
|
|
8817
8820
|
setSetting(1, `${_name}Type`, { maxSiz: g_limitObj.difSelectorSiz });
|
|
8821
|
+
funcEx();
|
|
8818
8822
|
createExpandedScView(_name);
|
|
8819
8823
|
},
|
|
8820
8824
|
Object.assign({
|
|
8821
8825
|
cxtFunc: () => {
|
|
8822
8826
|
setSetting(-1, `${_name}Type`, { maxSiz: g_limitObj.difSelectorSiz });
|
|
8827
|
+
funcEx();
|
|
8823
8828
|
createExpandedScView(_name);
|
|
8824
8829
|
},
|
|
8825
8830
|
title: g_msgObj[`${_name}Type`] ?? ``,
|
|
@@ -8846,6 +8851,7 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
8846
8851
|
if (typeEnabled) {
|
|
8847
8852
|
setExpandedBtnSiz();
|
|
8848
8853
|
}
|
|
8854
|
+
func();
|
|
8849
8855
|
},
|
|
8850
8856
|
});
|
|
8851
8857
|
if (typeEnabled) {
|
|
@@ -10262,7 +10268,11 @@ const applyMirror = (_keyNum, _shuffleGroup, _swapFlg = false) => {
|
|
|
10262
10268
|
const mirStyle = structuredClone(style);
|
|
10263
10269
|
|
|
10264
10270
|
if (_swapFlg) {
|
|
10265
|
-
style.forEach((group, i) =>
|
|
10271
|
+
style.forEach((group, i) => {
|
|
10272
|
+
g_settings.swapPattern.forEach(val => {
|
|
10273
|
+
swapGroupNums(style, group, i, val);
|
|
10274
|
+
});
|
|
10275
|
+
});
|
|
10266
10276
|
let swapUseFlg = false;
|
|
10267
10277
|
style.forEach((_group, j) => {
|
|
10268
10278
|
_group.forEach((val, k) => {
|
|
@@ -11937,6 +11947,56 @@ const getArrowSettings = () => {
|
|
|
11937
11947
|
g_workObj.orgFlatFlg = g_workObj.dividePos.every(v => v % 2 === g_workObj.dividePos[0] % 2);
|
|
11938
11948
|
g_stateObj.layerNumDf = Math.max(g_stateObj.layerNumDf, Math.ceil((Math.max(...g_workObj.dividePos) + 1) / 2) * 2);
|
|
11939
11949
|
|
|
11950
|
+
// Swapping設定に応じたステップゾーンの入れ替え
|
|
11951
|
+
// Mirror+のみ事前にオリジナルの位置を設定済みのためスキップする
|
|
11952
|
+
if (g_workObj.stepX_df.length === 0) {
|
|
11953
|
+
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
11954
|
+
}
|
|
11955
|
+
if (g_stateObj.swapping.endsWith(`Mirror`)) {
|
|
11956
|
+
|
|
11957
|
+
// Swappingにおけるグループ単位での入れ替えでは、上下でステップゾーンが分かれている場合は分離してシャッフルする
|
|
11958
|
+
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
11959
|
+
const _styleTrans = _style.flatMap(arr => {
|
|
11960
|
+
// g_workObj.devidePosの値ごとにグループ化する
|
|
11961
|
+
const groups = {};
|
|
11962
|
+
|
|
11963
|
+
arr.forEach(n => {
|
|
11964
|
+
const div = g_workObj.dividePos[n];
|
|
11965
|
+
if (!groups[div]) groups[div] = [];
|
|
11966
|
+
groups[div].push(n);
|
|
11967
|
+
});
|
|
11968
|
+
|
|
11969
|
+
// groups は {0:[...], 1:[...], 2:[...]} のような形になるので
|
|
11970
|
+
// これを配列に変換して返す
|
|
11971
|
+
return Object.values(groups);
|
|
11972
|
+
});
|
|
11973
|
+
const _styleTransDf = structuredClone(Object.values(_styleTrans));
|
|
11974
|
+
|
|
11975
|
+
if (g_stateObj.swapping === `Mirror`) {
|
|
11976
|
+
_styleTrans.map(_group => _group.reverse());
|
|
11977
|
+
|
|
11978
|
+
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
11979
|
+
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
11980
|
+
_styleTrans.forEach((group, i) => {
|
|
11981
|
+
g_settings.swapPattern.forEach(val => {
|
|
11982
|
+
swapGroupNums(_styleTrans, group, i, val);
|
|
11983
|
+
});
|
|
11984
|
+
});
|
|
11985
|
+
}
|
|
11986
|
+
// オリジナルと同一の場合、設定をOFFに戻す
|
|
11987
|
+
if (JSON.stringify(_styleTransDf) === JSON.stringify(_styleTrans)) {
|
|
11988
|
+
g_stateObj.swapping = C_FLG_OFF;
|
|
11989
|
+
g_settings.swappingNum = 0;
|
|
11990
|
+
}
|
|
11991
|
+
|
|
11992
|
+
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
11993
|
+
_styleTrans.forEach((_group, _i) => {
|
|
11994
|
+
_group.forEach((_val, _j) => {
|
|
11995
|
+
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
|
|
11996
|
+
});
|
|
11997
|
+
});
|
|
11998
|
+
}
|
|
11999
|
+
|
|
11940
12000
|
// StepArea(Default, Halfway以外)によるレイヤー移動
|
|
11941
12001
|
// ずらした位置に表示するため、レイヤーを倍化して倍化した先に割り当てる
|
|
11942
12002
|
const assignLayer = _func => {
|
|
@@ -12020,30 +12080,6 @@ const getArrowSettings = () => {
|
|
|
12020
12080
|
g_workObj.backX = (g_workObj.nonDefaultSc && g_headerObj.playingLayout ? g_headerObj.scAreaWidth : 0);
|
|
12021
12081
|
g_workObj.playingX = g_headerObj.playingX + g_workObj.backX;
|
|
12022
12082
|
|
|
12023
|
-
// Swapping設定に応じたステップゾーンの入れ替え
|
|
12024
|
-
// Mirror+のみ事前にオリジナルの位置を設定済みのためスキップする
|
|
12025
|
-
if (g_workObj.stepX_df.length === 0) {
|
|
12026
|
-
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
12027
|
-
}
|
|
12028
|
-
if (g_stateObj.swapping.endsWith(`Mirror`)) {
|
|
12029
|
-
|
|
12030
|
-
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
12031
|
-
if (g_stateObj.swapping === `Mirror`) {
|
|
12032
|
-
_style.map(_group => _group.reverse());
|
|
12033
|
-
|
|
12034
|
-
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
12035
|
-
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
12036
|
-
_style.forEach((group, i) => g_settings.swapPattern.forEach(val => swapGroupNums(_style, group, i, val)));
|
|
12037
|
-
}
|
|
12038
|
-
|
|
12039
|
-
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
12040
|
-
_style.forEach((_group, _i) => {
|
|
12041
|
-
_group.forEach((_val, _j) => {
|
|
12042
|
-
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[g_workObj.shuffleGroupMap[_i][_j]];
|
|
12043
|
-
});
|
|
12044
|
-
});
|
|
12045
|
-
}
|
|
12046
|
-
|
|
12047
12083
|
// FrzReturnの初期化
|
|
12048
12084
|
g_workObj.frzReturnFlg = false;
|
|
12049
12085
|
g_workObj.frzReturnSeq = g_frzReturnSeqFunc.get(g_stateObj.frzReturnType)();
|