danoniplus 44.5.18 → 44.5.19
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 44.5.
|
|
12
|
-
const g_revisedDate = `2026/07/
|
|
11
|
+
const g_version = `Ver 44.5.19`;
|
|
12
|
+
const g_revisedDate = `2026/07/31`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -10525,8 +10525,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
10525
10525
|
const arrowNum = parseFloat(tmpScrollchData[1]);
|
|
10526
10526
|
const scrollDir = parseFloat(tmpScrollchData[2] ?? `1`);
|
|
10527
10527
|
const layerGroup = parseFloat(tmpScrollchData[3] ?? `-1`);
|
|
10528
|
-
|
|
10528
|
+
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
10529
10529
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
10530
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
10531
|
+
layerTrans = invertSpecificTransforms(layerTrans);
|
|
10532
|
+
}
|
|
10530
10533
|
|
|
10531
10534
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
10532
10535
|
});
|
|
@@ -11637,6 +11640,32 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
11637
11640
|
}
|
|
11638
11641
|
};
|
|
11639
11642
|
|
|
11643
|
+
/**
|
|
11644
|
+
* ホワイトリストに登録されたCSS関数内の数値符号のみを反転する関数
|
|
11645
|
+
* @param {string} cssString
|
|
11646
|
+
* @returns {string}
|
|
11647
|
+
*/
|
|
11648
|
+
const invertSpecificTransforms = (cssString) => {
|
|
11649
|
+
// 反転対象にしたいCSS関数名を指定(ホワイトリスト)
|
|
11650
|
+
const targetFunctions = [
|
|
11651
|
+
`rotate`, `rotateX`, `rotateY`, `rotateZ`, `rotate3d`,
|
|
11652
|
+
`translate`, `translateX`, `translateY`, `translateZ`, `translate3d`,
|
|
11653
|
+
`skew`, `skewX`, `skewY`
|
|
11654
|
+
];
|
|
11655
|
+
|
|
11656
|
+
// RegExパターンを作成: /(rotate|translate...)\(([^)]+)\)/g
|
|
11657
|
+
const pattern = new RegExp(`\\b(${targetFunctions.join(`|`)})\\(([^)]+)\\)`, `g`);
|
|
11658
|
+
|
|
11659
|
+
return cssString.replace(pattern, (match, funcName, args) => {
|
|
11660
|
+
// 関数の中身(引数)に含まれる数値だけを符号反転
|
|
11661
|
+
const invertedArgs = args.replace(/(-?\d+(?:\.\d+)?)/g, (numStr) => {
|
|
11662
|
+
return numStr.startsWith(`-`) ? numStr.slice(1) : `-` + numStr;
|
|
11663
|
+
});
|
|
11664
|
+
|
|
11665
|
+
return `${funcName}(${invertedArgs})`;
|
|
11666
|
+
});
|
|
11667
|
+
}
|
|
11668
|
+
|
|
11640
11669
|
/**
|
|
11641
11670
|
* メイン画面前の初期化処理
|
|
11642
11671
|
*/
|
|
@@ -11666,6 +11695,7 @@ const getArrowSettings = () => {
|
|
|
11666
11695
|
g_workObj.keyCtrl = structuredClone(g_keyObj[`keyCtrl${keyCtrlPtn}`]);
|
|
11667
11696
|
g_workObj.diffList = [];
|
|
11668
11697
|
g_workObj.mainEndTime = 0;
|
|
11698
|
+
g_workObj.layerTrans = [];
|
|
11669
11699
|
|
|
11670
11700
|
const rotateBy = (val, delta) => {
|
|
11671
11701
|
// numeric
|
|
@@ -11698,6 +11728,13 @@ const getArrowSettings = () => {
|
|
|
11698
11728
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
11699
11729
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
11700
11730
|
|
|
11731
|
+
if (g_keyObj[`layerTrans${keyCtrlPtn}`]?.[0]) {
|
|
11732
|
+
g_workObj.layerTrans = structuredClone(g_keyObj[`layerTrans${keyCtrlPtn}`][0]);
|
|
11733
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
11734
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val));
|
|
11735
|
+
}
|
|
11736
|
+
}
|
|
11737
|
+
|
|
11701
11738
|
const keyCtrlLen = g_workObj.keyCtrl.length;
|
|
11702
11739
|
g_workObj.keyCtrlN = [...Array(keyCtrlLen)].map(() => []);
|
|
11703
11740
|
g_workObj.keyHitFlg = [...Array(keyCtrlLen)].map(() => []);
|
|
@@ -12173,7 +12210,7 @@ const mainInit = () => {
|
|
|
12173
12210
|
// StepAreaオプションにより、レイヤーが倍化される場合があるため基準レイヤー数ごとに設定
|
|
12174
12211
|
const transj = j % g_stateObj.layerNumDf;
|
|
12175
12212
|
addTransform(`mainSprite${j}`, `mainSprite${j}`,
|
|
12176
|
-
|
|
12213
|
+
g_workObj.layerTrans[Math.floor(transj / 2) * 2 + (transj + Number(g_stateObj.reverse === C_FLG_ON)) % 2]);
|
|
12177
12214
|
|
|
12178
12215
|
stepSprite.push(createEmptySprite(mainSpriteJ, `stepSprite${j}`, mainCommonPos));
|
|
12179
12216
|
arrowSprite.push(createEmptySprite(mainSpriteJ, `arrowSprite${j}`, Object.assign({ y: g_workObj.hitPosition * (j % 2 === 0 ? 1 : -1) }, mainCommonPos)));
|