danoniplus 48.5.6 → 48.5.7
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 +20 -7
- 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/08/
|
|
7
|
+
* Revised : 2026/08/12
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 48.5.
|
|
12
|
-
const g_revisedDate = `2026/08/
|
|
11
|
+
const g_version = `Ver 48.5.7`;
|
|
12
|
+
const g_revisedDate = `2026/08/12`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -12597,7 +12597,10 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
12597
12597
|
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
12598
12598
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
12599
12599
|
if (g_stateObj.reverse === C_FLG_ON) {
|
|
12600
|
-
layerTrans = invertSpecificTransforms(layerTrans);
|
|
12600
|
+
layerTrans = invertSpecificTransforms(layerTrans, [`translateX`]);
|
|
12601
|
+
}
|
|
12602
|
+
if (g_stateObj.swapping === `Mirror+`) {
|
|
12603
|
+
layerTrans = invertSpecificTransforms(layerTrans, [`translateY`]);
|
|
12601
12604
|
}
|
|
12602
12605
|
|
|
12603
12606
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
@@ -13758,15 +13761,20 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
13758
13761
|
/**
|
|
13759
13762
|
* ホワイトリストに登録されたCSS関数内の数値符号のみを反転する関数
|
|
13760
13763
|
* @param {string} cssString
|
|
13764
|
+
* @param {string[]} exceptList 反転対象から除外するCSS関数名のリスト
|
|
13761
13765
|
* @returns {string}
|
|
13762
13766
|
*/
|
|
13763
|
-
const invertSpecificTransforms = (cssString) => {
|
|
13767
|
+
const invertSpecificTransforms = (cssString, exceptList = []) => {
|
|
13764
13768
|
// 反転対象にしたいCSS関数名を指定(ホワイトリスト)
|
|
13765
|
-
const
|
|
13769
|
+
const baseTargetFunctions = [
|
|
13766
13770
|
`rotate`, `rotateX`, `rotateY`, `rotateZ`, `rotate3d`,
|
|
13767
13771
|
`translate`, `translateX`, `translateY`, `translateZ`, `translate3d`,
|
|
13768
13772
|
`skew`, `skewX`, `skewY`
|
|
13769
13773
|
];
|
|
13774
|
+
const targetFunctions = baseTargetFunctions.filter(pattern => !exceptList.includes(pattern));
|
|
13775
|
+
if (targetFunctions.length === 0) {
|
|
13776
|
+
return cssString; // 反転対象がない場合は元の文字列を返す
|
|
13777
|
+
}
|
|
13770
13778
|
|
|
13771
13779
|
// RegExパターンを作成: /(rotate|translate...)\(([^)]+)\)/g
|
|
13772
13780
|
const pattern = new RegExp(`\\b(${targetFunctions.join(`|`)})\\(([^)]+)\\)`, `g`);
|
|
@@ -13858,7 +13866,12 @@ const getArrowSettings = () => {
|
|
|
13858
13866
|
if (g_keyObj[`layerTrans${keyCtrlPtn}`]?.[0]) {
|
|
13859
13867
|
g_workObj.layerTrans = structuredClone(g_keyObj[`layerTrans${keyCtrlPtn}`][0]);
|
|
13860
13868
|
if (g_stateObj.reverse === C_FLG_ON) {
|
|
13861
|
-
|
|
13869
|
+
// Reverse時はX軸反転のため、X軸の座標変換では符号を変換しない
|
|
13870
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val, [`translateX`]));
|
|
13871
|
+
}
|
|
13872
|
+
if (g_stateObj.swapping === `Mirror+`) {
|
|
13873
|
+
// Swapping: Mirror+ はY軸反転のため、Y軸の座標変換では符号を変換しない
|
|
13874
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val, [`translateY`]));
|
|
13862
13875
|
}
|
|
13863
13876
|
}
|
|
13864
13877
|
|