danoniplus 49.3.1 → 49.3.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 +42 -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/07/
|
|
7
|
+
* Revised : 2026/07/31
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 49.3.
|
|
12
|
-
const g_revisedDate = `2026/07/
|
|
11
|
+
const g_version = `Ver 49.3.2`;
|
|
12
|
+
const g_revisedDate = `2026/07/31`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -12903,8 +12903,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
12903
12903
|
const arrowNum = parseFloat(tmpScrollchData[1]);
|
|
12904
12904
|
const scrollDir = parseFloat(tmpScrollchData[2] ?? `1`);
|
|
12905
12905
|
const layerGroup = parseFloat(tmpScrollchData[3] ?? `-1`);
|
|
12906
|
-
|
|
12906
|
+
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
12907
12907
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
12908
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
12909
|
+
layerTrans = invertSpecificTransforms(layerTrans);
|
|
12910
|
+
}
|
|
12908
12911
|
|
|
12909
12912
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
12910
12913
|
});
|
|
@@ -14061,6 +14064,32 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
14061
14064
|
}
|
|
14062
14065
|
};
|
|
14063
14066
|
|
|
14067
|
+
/**
|
|
14068
|
+
* ホワイトリストに登録されたCSS関数内の数値符号のみを反転する関数
|
|
14069
|
+
* @param {string} cssString
|
|
14070
|
+
* @returns {string}
|
|
14071
|
+
*/
|
|
14072
|
+
const invertSpecificTransforms = (cssString) => {
|
|
14073
|
+
// 反転対象にしたいCSS関数名を指定(ホワイトリスト)
|
|
14074
|
+
const targetFunctions = [
|
|
14075
|
+
`rotate`, `rotateX`, `rotateY`, `rotateZ`, `rotate3d`,
|
|
14076
|
+
`translate`, `translateX`, `translateY`, `translateZ`, `translate3d`,
|
|
14077
|
+
`skew`, `skewX`, `skewY`
|
|
14078
|
+
];
|
|
14079
|
+
|
|
14080
|
+
// RegExパターンを作成: /(rotate|translate...)\(([^)]+)\)/g
|
|
14081
|
+
const pattern = new RegExp(`\\b(${targetFunctions.join(`|`)})\\(([^)]+)\\)`, `g`);
|
|
14082
|
+
|
|
14083
|
+
return cssString.replace(pattern, (match, funcName, args) => {
|
|
14084
|
+
// 関数の中身(引数)に含まれる数値だけを符号反転
|
|
14085
|
+
const invertedArgs = args.replace(/(-?\d+(?:\.\d+)?)/g, (numStr) => {
|
|
14086
|
+
return numStr.startsWith(`-`) ? numStr.slice(1) : `-` + numStr;
|
|
14087
|
+
});
|
|
14088
|
+
|
|
14089
|
+
return `${funcName}(${invertedArgs})`;
|
|
14090
|
+
});
|
|
14091
|
+
}
|
|
14092
|
+
|
|
14064
14093
|
/**
|
|
14065
14094
|
* メイン画面前の初期化処理
|
|
14066
14095
|
*/
|
|
@@ -14095,6 +14124,7 @@ const getArrowSettings = () => {
|
|
|
14095
14124
|
g_workObj.diffList = [];
|
|
14096
14125
|
g_workObj.mainEndTime = 0;
|
|
14097
14126
|
g_workObj.currentLifeState = ``;
|
|
14127
|
+
g_workObj.layerTrans = [];
|
|
14098
14128
|
g_errorCache['g_customJsObj.mainEnterFrame'] = [];
|
|
14099
14129
|
|
|
14100
14130
|
const rotateBy = (val, delta) => {
|
|
@@ -14134,6 +14164,13 @@ const getArrowSettings = () => {
|
|
|
14134
14164
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
14135
14165
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
14136
14166
|
|
|
14167
|
+
if (g_keyObj[`layerTrans${keyCtrlPtn}`]?.[0]) {
|
|
14168
|
+
g_workObj.layerTrans = structuredClone(g_keyObj[`layerTrans${keyCtrlPtn}`][0]);
|
|
14169
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
14170
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val));
|
|
14171
|
+
}
|
|
14172
|
+
}
|
|
14173
|
+
|
|
14137
14174
|
const keyCtrlLen = g_workObj.keyCtrl.length;
|
|
14138
14175
|
g_workObj.keyCtrlN = [...Array(keyCtrlLen)].map(() => []);
|
|
14139
14176
|
g_workObj.keyHitFlg = [...Array(keyCtrlLen)].map(() => []);
|
|
@@ -14630,7 +14667,7 @@ const mainInit = () => {
|
|
|
14630
14667
|
// StepAreaオプションにより、レイヤーが倍化される場合があるため基準レイヤー数ごとに設定
|
|
14631
14668
|
const transj = j % g_stateObj.layerNumDf;
|
|
14632
14669
|
addTransform(`mainSprite${j}`, `mainSprite${j}`,
|
|
14633
|
-
|
|
14670
|
+
g_workObj.layerTrans[Math.floor(transj / 2) * 2 + (transj + Number(g_stateObj.reverse === C_FLG_ON)) % 2], g_transPriority.layer);
|
|
14634
14671
|
|
|
14635
14672
|
stepSprite.push(createEmptySprite(mainSpriteJ, `stepSprite${j}`, mainCommonPos));
|
|
14636
14673
|
arrowSprite.push(createEmptySprite(mainSpriteJ, `arrowSprite${j}`, { ...mainCommonPos, y: g_workObj.hitPosition * (j % 2 === 0 ? 1 : -1) }));
|