danoniplus 48.5.3 → 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 +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 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 = ``;
|
|
@@ -10014,7 +10014,8 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
10014
10014
|
*/
|
|
10015
10015
|
const setExpandedBtnSiz = () => {
|
|
10016
10016
|
const camelH = toCapitalize(_name);
|
|
10017
|
-
|
|
10017
|
+
const isDefault = defaultList.includes(g_stateObj[_name]);
|
|
10018
|
+
if (isDefault) {
|
|
10018
10019
|
$id(`lnk${camelH}Type`).display = C_DIS_NONE;
|
|
10019
10020
|
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeft);
|
|
10020
10021
|
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidth);
|
|
@@ -10023,7 +10024,8 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
10023
10024
|
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeftShort);
|
|
10024
10025
|
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidthShort);
|
|
10025
10026
|
}
|
|
10026
|
-
|
|
10027
|
+
const labelWidth = isDefault ? g_limitObj.setLblWidth : g_limitObj.setLblWidthShort - 10;
|
|
10028
|
+
$id(`lnk${camelH}`).fontSize = wUnit(getFontSize2(getStgDetailName(g_stateObj[_name]), labelWidth, { maxSiz: g_limitObj.setLblSiz }));
|
|
10027
10029
|
};
|
|
10028
10030
|
|
|
10029
10031
|
/**
|
|
@@ -12592,8 +12594,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
12592
12594
|
const arrowNum = parseFloat(tmpScrollchData[1]);
|
|
12593
12595
|
const scrollDir = parseFloat(tmpScrollchData[2] ?? `1`);
|
|
12594
12596
|
const layerGroup = parseFloat(tmpScrollchData[3] ?? `-1`);
|
|
12595
|
-
|
|
12597
|
+
let layerTrans = tmpScrollchData[4] ?? ``;
|
|
12596
12598
|
maxLayerGroup = Math.max(maxLayerGroup, layerGroup);
|
|
12599
|
+
if (g_stateObj.reverse === C_FLG_ON) {
|
|
12600
|
+
layerTrans = invertSpecificTransforms(layerTrans);
|
|
12601
|
+
}
|
|
12597
12602
|
|
|
12598
12603
|
scrollchData.push([frame, arrowNum, frame, scrollDir, layerGroup, layerTrans]);
|
|
12599
12604
|
});
|
|
@@ -13750,6 +13755,32 @@ const pushScrollchs = (_header, _frameArrow, _val, _frameStep, _scrollDir, _laye
|
|
|
13750
13755
|
}
|
|
13751
13756
|
};
|
|
13752
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
|
+
|
|
13753
13784
|
/**
|
|
13754
13785
|
* メイン画面前の初期化処理
|
|
13755
13786
|
*/
|
|
@@ -13784,6 +13815,7 @@ const getArrowSettings = () => {
|
|
|
13784
13815
|
g_workObj.diffList = [];
|
|
13785
13816
|
g_workObj.mainEndTime = 0;
|
|
13786
13817
|
g_workObj.currentLifeState = ``;
|
|
13818
|
+
g_workObj.layerTrans = [];
|
|
13787
13819
|
g_errorCache['g_customJsObj.mainEnterFrame'] = [];
|
|
13788
13820
|
|
|
13789
13821
|
const rotateBy = (val, delta) => {
|
|
@@ -13823,6 +13855,13 @@ const getArrowSettings = () => {
|
|
|
13823
13855
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
13824
13856
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
13825
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
|
+
|
|
13826
13865
|
const keyCtrlLen = g_workObj.keyCtrl.length;
|
|
13827
13866
|
g_workObj.keyCtrlN = [...Array(keyCtrlLen)].map(() => []);
|
|
13828
13867
|
g_workObj.keyHitFlg = [...Array(keyCtrlLen)].map(() => []);
|
|
@@ -14322,7 +14361,7 @@ const mainInit = () => {
|
|
|
14322
14361
|
// StepAreaオプションにより、レイヤーが倍化される場合があるため基準レイヤー数ごとに設定
|
|
14323
14362
|
const transj = j % g_stateObj.layerNumDf;
|
|
14324
14363
|
addTransform(`mainSprite${j}`, `mainSprite${j}`,
|
|
14325
|
-
|
|
14364
|
+
g_workObj.layerTrans[Math.floor(transj / 2) * 2 + (transj + Number(g_stateObj.reverse === C_FLG_ON)) % 2], g_transPriority.layer);
|
|
14326
14365
|
|
|
14327
14366
|
stepSprite.push(createEmptySprite(mainSpriteJ, `stepSprite${j}`, mainCommonPos));
|
|
14328
14367
|
arrowSprite.push(createEmptySprite(mainSpriteJ, `arrowSprite${j}`, { ...mainCommonPos, y: g_workObj.hitPosition * (j % 2 === 0 ? 1 : -1) }));
|