danoniplus 49.4.1 → 49.4.2
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 49.4.
|
|
12
|
-
const g_revisedDate = `2026/08/
|
|
11
|
+
const g_version = `Ver 49.4.2`;
|
|
12
|
+
const g_revisedDate = `2026/08/12`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -13007,7 +13007,10 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
13007
13007
|
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
13008
13008
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
13009
13009
|
if (g_stateObj.reverse === C_FLG_ON) {
|
|
13010
|
-
layerTrans = invertSpecificTransforms(layerTrans);
|
|
13010
|
+
layerTrans = invertSpecificTransforms(layerTrans, [`translateX`]);
|
|
13011
|
+
}
|
|
13012
|
+
if (g_stateObj.swapping === `Mirror+`) {
|
|
13013
|
+
layerTrans = invertSpecificTransforms(layerTrans, [`translateY`]);
|
|
13011
13014
|
}
|
|
13012
13015
|
|
|
13013
13016
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
@@ -14168,15 +14171,20 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
14168
14171
|
/**
|
|
14169
14172
|
* ホワイトリストに登録されたCSS関数内の数値符号のみを反転する関数
|
|
14170
14173
|
* @param {string} cssString
|
|
14174
|
+
* @param {string[]} exceptList 反転対象から除外するCSS関数名のリスト
|
|
14171
14175
|
* @returns {string}
|
|
14172
14176
|
*/
|
|
14173
|
-
const invertSpecificTransforms = (cssString) => {
|
|
14177
|
+
const invertSpecificTransforms = (cssString, exceptList = []) => {
|
|
14174
14178
|
// 反転対象にしたいCSS関数名を指定(ホワイトリスト)
|
|
14175
|
-
const
|
|
14179
|
+
const baseTargetFunctions = [
|
|
14176
14180
|
`rotate`, `rotateX`, `rotateY`, `rotateZ`, `rotate3d`,
|
|
14177
14181
|
`translate`, `translateX`, `translateY`, `translateZ`, `translate3d`,
|
|
14178
14182
|
`skew`, `skewX`, `skewY`
|
|
14179
14183
|
];
|
|
14184
|
+
const targetFunctions = baseTargetFunctions.filter(pattern => !exceptList.includes(pattern));
|
|
14185
|
+
if (targetFunctions.length === 0) {
|
|
14186
|
+
return cssString; // 反転対象がない場合は元の文字列を返す
|
|
14187
|
+
}
|
|
14180
14188
|
|
|
14181
14189
|
// RegExパターンを作成: /(rotate|translate...)\(([^)]+)\)/g
|
|
14182
14190
|
const pattern = new RegExp(`\\b(${targetFunctions.join(`|`)})\\(([^)]+)\\)`, `g`);
|
|
@@ -14268,7 +14276,12 @@ const getArrowSettings = () => {
|
|
|
14268
14276
|
if (g_keyObj[`layerTrans${keyCtrlPtn}`]?.[0]) {
|
|
14269
14277
|
g_workObj.layerTrans = structuredClone(g_keyObj[`layerTrans${keyCtrlPtn}`][0]);
|
|
14270
14278
|
if (g_stateObj.reverse === C_FLG_ON) {
|
|
14271
|
-
|
|
14279
|
+
// Reverse時はX軸反転のため、X軸の座標変換では符号を変換しない
|
|
14280
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val, [`translateX`]));
|
|
14281
|
+
}
|
|
14282
|
+
if (g_stateObj.swapping === `Mirror+`) {
|
|
14283
|
+
// Swapping: Mirror+ はY軸反転のため、Y軸の座標変換では符号を変換しない
|
|
14284
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val, [`translateY`]));
|
|
14272
14285
|
}
|
|
14273
14286
|
}
|
|
14274
14287
|
|