danoniplus 47.6.7 → 47.6.8
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 47.6.
|
|
12
|
-
const g_revisedDate = `2026/07/
|
|
11
|
+
const g_version = `Ver 47.6.8`;
|
|
12
|
+
const g_revisedDate = `2026/07/31`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -11907,8 +11907,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
11907
11907
|
const arrowNum = parseFloat(tmpScrollchData[1]);
|
|
11908
11908
|
const scrollDir = parseFloat(tmpScrollchData[2] ?? `1`);
|
|
11909
11909
|
const layerGroup = parseFloat(tmpScrollchData[3] ?? `-1`);
|
|
11910
|
-
|
|
11910
|
+
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
11911
11911
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
11912
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
11913
|
+
layerTrans = invertSpecificTransforms(layerTrans);
|
|
11914
|
+
}
|
|
11912
11915
|
|
|
11913
11916
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
11914
11917
|
});
|
|
@@ -13065,6 +13068,32 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
13065
13068
|
}
|
|
13066
13069
|
};
|
|
13067
13070
|
|
|
13071
|
+
/**
|
|
13072
|
+
* ホワイトリストに登録されたCSS関数内の数値符号のみを反転する関数
|
|
13073
|
+
* @param {string} cssString
|
|
13074
|
+
* @returns {string}
|
|
13075
|
+
*/
|
|
13076
|
+
const invertSpecificTransforms = (cssString) => {
|
|
13077
|
+
// 反転対象にしたいCSS関数名を指定(ホワイトリスト)
|
|
13078
|
+
const targetFunctions = [
|
|
13079
|
+
`rotate`, `rotateX`, `rotateY`, `rotateZ`, `rotate3d`,
|
|
13080
|
+
`translate`, `translateX`, `translateY`, `translateZ`, `translate3d`,
|
|
13081
|
+
`skew`, `skewX`, `skewY`
|
|
13082
|
+
];
|
|
13083
|
+
|
|
13084
|
+
// RegExパターンを作成: /(rotate|translate...)\(([^)]+)\)/g
|
|
13085
|
+
const pattern = new RegExp(`\\b(${targetFunctions.join(`|`)})\\(([^)]+)\\)`, `g`);
|
|
13086
|
+
|
|
13087
|
+
return cssString.replace(pattern, (match, funcName, args) => {
|
|
13088
|
+
// 関数の中身(引数)に含まれる数値だけを符号反転
|
|
13089
|
+
const invertedArgs = args.replace(/(-?\d+(?:\.\d+)?)/g, (numStr) => {
|
|
13090
|
+
return numStr.startsWith(`-`) ? numStr.slice(1) : `-` + numStr;
|
|
13091
|
+
});
|
|
13092
|
+
|
|
13093
|
+
return `${funcName}(${invertedArgs})`;
|
|
13094
|
+
});
|
|
13095
|
+
}
|
|
13096
|
+
|
|
13068
13097
|
/**
|
|
13069
13098
|
* メイン画面前の初期化処理
|
|
13070
13099
|
*/
|
|
@@ -13099,6 +13128,7 @@ const getArrowSettings = () => {
|
|
|
13099
13128
|
g_workObj.diffList = [];
|
|
13100
13129
|
g_workObj.mainEndTime = 0;
|
|
13101
13130
|
g_workObj.currentLifeState = ``;
|
|
13131
|
+
g_workObj.layerTrans = [];
|
|
13102
13132
|
g_errorCache['g_customJsObj.mainEnterFrame'] = [];
|
|
13103
13133
|
|
|
13104
13134
|
const rotateBy = (val, delta) => {
|
|
@@ -13138,6 +13168,13 @@ const getArrowSettings = () => {
|
|
|
13138
13168
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
13139
13169
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
13140
13170
|
|
|
13171
|
+
if (g_keyObj[`layerTrans${keyCtrlPtn}`]?.[0]) {
|
|
13172
|
+
g_workObj.layerTrans = structuredClone(g_keyObj[`layerTrans${keyCtrlPtn}`][0]);
|
|
13173
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
13174
|
+
g_workObj.layerTrans = g_workObj.layerTrans.map(val => invertSpecificTransforms(val));
|
|
13175
|
+
}
|
|
13176
|
+
}
|
|
13177
|
+
|
|
13141
13178
|
const keyCtrlLen = g_workObj.keyCtrl.length;
|
|
13142
13179
|
g_workObj.keyCtrlN = [...Array(keyCtrlLen)].map(() => []);
|
|
13143
13180
|
g_workObj.keyHitFlg = [...Array(keyCtrlLen)].map(() => []);
|
|
@@ -13632,7 +13669,7 @@ const mainInit = () => {
|
|
|
13632
13669
|
// StepAreaオプションにより、レイヤーが倍化される場合があるため基準レイヤー数ごとに設定
|
|
13633
13670
|
const transj = j % g_stateObj.layerNumDf;
|
|
13634
13671
|
addTransform(`mainSprite${j}`, `mainSprite${j}`,
|
|
13635
|
-
|
|
13672
|
+
g_workObj.layerTrans[Math.floor(transj / 2) * 2 + (transj + Number(g_stateObj.reverse === C_FLG_ON)) % 2], g_transPriority.layer);
|
|
13636
13673
|
|
|
13637
13674
|
stepSprite.push(createEmptySprite(mainSpriteJ, `stepSprite${j}`, mainCommonPos));
|
|
13638
13675
|
arrowSprite.push(createEmptySprite(mainSpriteJ, `arrowSprite${j}`, { ...mainCommonPos, y: g_workObj.hitPosition * (j % 2 === 0 ? 1 : -1) }));
|