danoniplus 47.6.6 → 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 +46 -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/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 = ``;
|
|
@@ -9373,7 +9373,8 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
9373
9373
|
*/
|
|
9374
9374
|
const setExpandedBtnSiz = () => {
|
|
9375
9375
|
const camelH = toCapitalize(_name);
|
|
9376
|
-
|
|
9376
|
+
const isDefault = defaultList.includes(g_stateObj[_name]);
|
|
9377
|
+
if (isDefault) {
|
|
9377
9378
|
$id(`lnk${camelH}Type`).display = C_DIS_NONE;
|
|
9378
9379
|
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeft);
|
|
9379
9380
|
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidth);
|
|
@@ -9382,7 +9383,8 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
9382
9383
|
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeftShort);
|
|
9383
9384
|
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidthShort);
|
|
9384
9385
|
}
|
|
9385
|
-
|
|
9386
|
+
const labelWidth = isDefault ? g_limitObj.setLblWidth : g_limitObj.setLblWidthShort - 10;
|
|
9387
|
+
$id(`lnk${camelH}`).fontSize = wUnit(getFontSize2(getStgDetailName(g_stateObj[_name]), labelWidth, { maxSiz: g_limitObj.setLblSiz }));
|
|
9386
9388
|
};
|
|
9387
9389
|
|
|
9388
9390
|
/**
|
|
@@ -11905,8 +11907,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
11905
11907
|
const arrowNum = parseFloat(tmpScrollchData[1]);
|
|
11906
11908
|
const scrollDir = parseFloat(tmpScrollchData[2] ?? `1`);
|
|
11907
11909
|
const layerGroup = parseFloat(tmpScrollchData[3] ?? `-1`);
|
|
11908
|
-
|
|
11910
|
+
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
11909
11911
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
11912
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
11913
|
+
layerTrans = invertSpecificTransforms(layerTrans);
|
|
11914
|
+
}
|
|
11910
11915
|
|
|
11911
11916
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
11912
11917
|
});
|
|
@@ -13063,6 +13068,32 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
13063
13068
|
}
|
|
13064
13069
|
};
|
|
13065
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
|
+
|
|
13066
13097
|
/**
|
|
13067
13098
|
* メイン画面前の初期化処理
|
|
13068
13099
|
*/
|
|
@@ -13097,6 +13128,7 @@ const getArrowSettings = () => {
|
|
|
13097
13128
|
g_workObj.diffList = [];
|
|
13098
13129
|
g_workObj.mainEndTime = 0;
|
|
13099
13130
|
g_workObj.currentLifeState = ``;
|
|
13131
|
+
g_workObj.layerTrans = [];
|
|
13100
13132
|
g_errorCache['g_customJsObj.mainEnterFrame'] = [];
|
|
13101
13133
|
|
|
13102
13134
|
const rotateBy = (val, delta) => {
|
|
@@ -13136,6 +13168,13 @@ const getArrowSettings = () => {
|
|
|
13136
13168
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
13137
13169
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
13138
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
|
+
|
|
13139
13178
|
const keyCtrlLen = g_workObj.keyCtrl.length;
|
|
13140
13179
|
g_workObj.keyCtrlN = [...Array(keyCtrlLen)].map(() => []);
|
|
13141
13180
|
g_workObj.keyHitFlg = [...Array(keyCtrlLen)].map(() => []);
|
|
@@ -13630,7 +13669,7 @@ const mainInit = () => {
|
|
|
13630
13669
|
// StepAreaオプションにより、レイヤーが倍化される場合があるため基準レイヤー数ごとに設定
|
|
13631
13670
|
const transj = j % g_stateObj.layerNumDf;
|
|
13632
13671
|
addTransform(`mainSprite${j}`, `mainSprite${j}`,
|
|
13633
|
-
|
|
13672
|
+
g_workObj.layerTrans[Math.floor(transj / 2) * 2 + (transj + Number(g_stateObj.reverse === C_FLG_ON)) % 2], g_transPriority.layer);
|
|
13634
13673
|
|
|
13635
13674
|
stepSprite.push(createEmptySprite(mainSpriteJ, `stepSprite${j}`, mainCommonPos));
|
|
13636
13675
|
arrowSprite.push(createEmptySprite(mainSpriteJ, `arrowSprite${j}`, { ...mainCommonPos, y: g_workObj.hitPosition * (j % 2 === 0 ? 1 : -1) }));
|