danoniplus 48.5.4 → 48.5.5
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 48.5.
|
|
12
|
-
const g_revisedDate = `2026/07/
|
|
11
|
+
const g_version = `Ver 48.5.5`;
|
|
12
|
+
const g_revisedDate = `2026/07/31`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -12594,8 +12594,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
12594
12594
|
const arrowNum = parseFloat(tmpScrollchData[1]);
|
|
12595
12595
|
const scrollDir = parseFloat(tmpScrollchData[2] ?? `1`);
|
|
12596
12596
|
const layerGroup = parseFloat(tmpScrollchData[3] ?? `-1`);
|
|
12597
|
-
|
|
12597
|
+
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
12598
12598
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
12599
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
12600
|
+
layerTrans = invertSpecificTransforms(layerTrans);
|
|
12601
|
+
}
|
|
12599
12602
|
|
|
12600
12603
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
12601
12604
|
});
|
|
@@ -13752,6 +13755,32 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
13752
13755
|
}
|
|
13753
13756
|
};
|
|
13754
13757
|
|
|
13758
|
+
/**
|
|
13759
|
+
* ホワイトリストに登録されたCSS関数内の数値符号のみを反転する関数
|
|
13760
|
+
* @param {string} cssString
|
|
13761
|
+
* @returns {string}
|
|
13762
|
+
*/
|
|
13763
|
+
const invertSpecificTransforms = (cssString) => {
|
|
13764
|
+
// 反転対象にしたいCSS関数名を指定(ホワイトリスト)
|
|
13765
|
+
const targetFunctions = [
|
|
13766
|
+
`rotate`, `rotateX`, `rotateY`, `rotateZ`, `rotate3d`,
|
|
13767
|
+
`translate`, `translateX`, `translateY`, `translateZ`, `translate3d`,
|
|
13768
|
+
`skew`, `skewX`, `skewY`
|
|
13769
|
+
];
|
|
13770
|
+
|
|
13771
|
+
// RegExパターンを作成: /(rotate|translate...)\(([^)]+)\)/g
|
|
13772
|
+
const pattern = new RegExp(`\\b(${targetFunctions.join(`|`)})\\(([^)]+)\\)`, `g`);
|
|
13773
|
+
|
|
13774
|
+
return cssString.replace(pattern, (match, funcName, args) => {
|
|
13775
|
+
// 関数の中身(引数)に含まれる数値だけを符号反転
|
|
13776
|
+
const invertedArgs = args.replace(/(-?\d+(?:\.\d+)?)/g, (numStr) => {
|
|
13777
|
+
return numStr.startsWith(`-`) ? numStr.slice(1) : `-` + numStr;
|
|
13778
|
+
});
|
|
13779
|
+
|
|
13780
|
+
return `${funcName}(${invertedArgs})`;
|
|
13781
|
+
});
|
|
13782
|
+
}
|
|
13783
|
+
|
|
13755
13784
|
/**
|
|
13756
13785
|
* メイン画面前の初期化処理
|
|
13757
13786
|
*/
|
|
@@ -13786,6 +13815,7 @@ const getArrowSettings = () => {
|
|
|
13786
13815
|
g_workObj.diffList = [];
|
|
13787
13816
|
g_workObj.mainEndTime = 0;
|
|
13788
13817
|
g_workObj.currentLifeState = ``;
|
|
13818
|
+
g_workObj.layerTrans = [];
|
|
13789
13819
|
g_errorCache['g_customJsObj.mainEnterFrame'] = [];
|
|
13790
13820
|
|
|
13791
13821
|
const rotateBy = (val, delta) => {
|
|
@@ -13825,6 +13855,13 @@ const getArrowSettings = () => {
|
|
|
13825
13855
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
13826
13856
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
13827
13857
|
|
|
13858
|
+
if (g_keyObj[`layerTrans${keyCtrlPtn}`]?.[0]) {
|
|
13859
|
+
g_workObj.layerTrans = structuredClone(g_keyObj[`layerTrans${keyCtrlPtn}`][0]);
|
|
13860
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
13861
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val));
|
|
13862
|
+
}
|
|
13863
|
+
}
|
|
13864
|
+
|
|
13828
13865
|
const keyCtrlLen = g_workObj.keyCtrl.length;
|
|
13829
13866
|
g_workObj.keyCtrlN = [...Array(keyCtrlLen)].map(() => []);
|
|
13830
13867
|
g_workObj.keyHitFlg = [...Array(keyCtrlLen)].map(() => []);
|
|
@@ -14324,7 +14361,7 @@ const mainInit = () => {
|
|
|
14324
14361
|
// StepAreaオプションにより、レイヤーが倍化される場合があるため基準レイヤー数ごとに設定
|
|
14325
14362
|
const transj = j % g_stateObj.layerNumDf;
|
|
14326
14363
|
addTransform(`mainSprite${j}`, `mainSprite${j}`,
|
|
14327
|
-
|
|
14364
|
+
g_workObj.layerTrans[Math.floor(transj / 2) * 2 + (transj + Number(g_stateObj.reverse === C_FLG_ON)) % 2], g_transPriority.layer);
|
|
14328
14365
|
|
|
14329
14366
|
stepSprite.push(createEmptySprite(mainSpriteJ, `stepSprite${j}`, mainCommonPos));
|
|
14330
14367
|
arrowSprite.push(createEmptySprite(mainSpriteJ, `arrowSprite${j}`, { ...mainCommonPos, y: g_workObj.hitPosition * (j % 2 === 0 ? 1 : -1) }));
|