danoniplus 44.1.1 → 44.2.0
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 +58 -26
- package/js/lib/danoni_constants.js +4 -1
- 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/02/
|
|
7
|
+
* Revised : 2026/02/18
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 44.
|
|
12
|
-
const g_revisedDate = `2026/02/
|
|
11
|
+
const g_version = `Ver 44.2.0`;
|
|
12
|
+
const g_revisedDate = `2026/02/18`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -6730,7 +6730,7 @@ const drawSpeedGraph = _scoreId => {
|
|
|
6730
6730
|
for (let i = 0; i < speedData?.length; i += 2) {
|
|
6731
6731
|
if (speedData[i] >= startFrame) {
|
|
6732
6732
|
frame.push(speedData[i] - startFrame);
|
|
6733
|
-
speed.push(speedData[i + 1]);
|
|
6733
|
+
speed.push(getSpeedFactor(speedData[i + 1]));
|
|
6734
6734
|
tmpSpeedPoint.push(speedData[i] - startFrame);
|
|
6735
6735
|
}
|
|
6736
6736
|
speedObj[speedType].cnt++;
|
|
@@ -8393,7 +8393,7 @@ const createSettingsDisplayWindow = _sprite => {
|
|
|
8393
8393
|
const prevDisp = g_settings.displayNum[_name];
|
|
8394
8394
|
const [prevBarColor, prevBgColor] = [cssBarList[prevDisp], cssBgList[prevDisp]];
|
|
8395
8395
|
|
|
8396
|
-
g_settings.displayNum[_name] = (prevDisp
|
|
8396
|
+
g_settings.displayNum[_name] = nextPos(prevDisp, _scrollNum, _filterFlg ? 2 : list.length);
|
|
8397
8397
|
const nextDisp = g_settings.displayNum[_name];
|
|
8398
8398
|
const [nextBarColor, nextBgColor] = [cssBarList[nextDisp], cssBgList[nextDisp]];
|
|
8399
8399
|
|
|
@@ -8421,7 +8421,7 @@ const createSettingsDisplayWindow = _sprite => {
|
|
|
8421
8421
|
if (g_settings[`d_${_name}s`] !== undefined) {
|
|
8422
8422
|
displaySprite.appendChild(
|
|
8423
8423
|
makeSettingLblCssButton(`${linkId}R`, `>`, _heightPos, () => switchDisplay(1, false), {
|
|
8424
|
-
x: 175 + 180 * _widthPos, w: 25,
|
|
8424
|
+
x: 175 + 180 * _widthPos, w: 25, cxtFunc: () => switchDisplay(-1, false),
|
|
8425
8425
|
}, g_cssObj.button_Mini)
|
|
8426
8426
|
);
|
|
8427
8427
|
}
|
|
@@ -10215,7 +10215,7 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
10215
10215
|
const dosSpeedData = getRefData(_header, `${_scoreNo}${_footer}`);
|
|
10216
10216
|
const speedData = [];
|
|
10217
10217
|
|
|
10218
|
-
if (hasVal(dosSpeedData) && g_stateObj.d_speed
|
|
10218
|
+
if (hasVal(dosSpeedData) && g_stateObj.d_speed !== C_FLG_OFF) {
|
|
10219
10219
|
const tmpArrayData = splitLF(dosSpeedData);
|
|
10220
10220
|
|
|
10221
10221
|
tmpArrayData.filter(data => hasVal(data)).forEach(tmpData => {
|
|
@@ -10787,6 +10787,27 @@ const getStartFrame = (_lastFrame, _fadein = 0, _scoreId = g_stateObj.scoreId) =
|
|
|
10787
10787
|
return frameNum;
|
|
10788
10788
|
};
|
|
10789
10789
|
|
|
10790
|
+
/**
|
|
10791
|
+
* 速度補正値の算出
|
|
10792
|
+
* @param {number} _speed
|
|
10793
|
+
* @returns {number}
|
|
10794
|
+
*/
|
|
10795
|
+
const getSpeedFactor = _speed => {
|
|
10796
|
+
if (Math.abs(_speed) === 1) {
|
|
10797
|
+
// ±1 はそのまま返して符号を保持
|
|
10798
|
+
return _speed;
|
|
10799
|
+
}
|
|
10800
|
+
if (g_stateObj.d_speed === `Extreme`) {
|
|
10801
|
+
// |speed|>1 を強めに、<1 を弱めに
|
|
10802
|
+
return _speed * (Math.abs(_speed) > 1 ? 1.5 : 0.75);
|
|
10803
|
+
}
|
|
10804
|
+
if (g_stateObj.d_speed === `Soft`) {
|
|
10805
|
+
// 変化幅を緩和(符号は維持)
|
|
10806
|
+
return (1 + Math.abs(_speed)) / 2 * Math.sign(_speed);
|
|
10807
|
+
}
|
|
10808
|
+
return _speed;
|
|
10809
|
+
}
|
|
10810
|
+
|
|
10790
10811
|
/**
|
|
10791
10812
|
* 各フレームごとの速度を格納
|
|
10792
10813
|
* @param {object} _speedData
|
|
@@ -10800,7 +10821,7 @@ const setSpeedOnFrame = (_speedData, _lastFrame) => {
|
|
|
10800
10821
|
|
|
10801
10822
|
for (let frm = 0, s = 0; frm <= _lastFrame; frm++) {
|
|
10802
10823
|
while (frm >= _speedData?.[s]) {
|
|
10803
|
-
currentSpeed = _speedData[s + 1] * g_stateObj.speed * g_headerObj.baseSpeed * 2;
|
|
10824
|
+
currentSpeed = getSpeedFactor(_speedData[s + 1]) * g_stateObj.speed * g_headerObj.baseSpeed * 2;
|
|
10804
10825
|
s += 2;
|
|
10805
10826
|
}
|
|
10806
10827
|
speedOnFrame[frm] = currentSpeed;
|
|
@@ -11056,6 +11077,7 @@ const pushArrows = (_dataObj, _speedOnFrame, _firstArrivalFrame) => {
|
|
|
11056
11077
|
} else {
|
|
11057
11078
|
_data[k] = tmpObj.frm;
|
|
11058
11079
|
}
|
|
11080
|
+
_data[k + 1] = getSpeedFactor(_data[k + 1]);
|
|
11059
11081
|
}
|
|
11060
11082
|
for (let k = 0; k < delIdx; k++) {
|
|
11061
11083
|
_data.shift();
|
|
@@ -14176,6 +14198,10 @@ const resultInit = () => {
|
|
|
14176
14198
|
const withOptions = (_flg, _defaultSet, _displayText = _flg) =>
|
|
14177
14199
|
(_flg !== _defaultSet ? getStgDetailName(_displayText) : ``);
|
|
14178
14200
|
|
|
14201
|
+
const withDisplays = (_flg, _defaultSet, _displayText = _flg) =>
|
|
14202
|
+
(_flg !== _defaultSet
|
|
14203
|
+
? getStgDetailName(_displayText) + (_flg === C_FLG_OFF ? `` : ` : ${getStgDetailName(_flg)}`) : ``);
|
|
14204
|
+
|
|
14179
14205
|
// 譜面名の組み立て処理 (Ex: 9Akey / Normal-Leftless (maker) [X-Mirror])
|
|
14180
14206
|
const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
|
|
14181
14207
|
const difDatas = [
|
|
@@ -14207,34 +14233,40 @@ const resultInit = () => {
|
|
|
14207
14233
|
|
|
14208
14234
|
// Display設定の組み立て処理 (Ex: Step : FlatBar, Judge, Life : OFF)
|
|
14209
14235
|
let displayData = [
|
|
14210
|
-
|
|
14211
|
-
|
|
14212
|
-
|
|
14213
|
-
|
|
14214
|
-
|
|
14215
|
-
|
|
14216
|
-
|
|
14217
|
-
withOptions(g_stateObj.d_filterline, C_FLG_ON, g_lblNameObj.rd_FilterLine),
|
|
14236
|
+
withDisplays(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone),
|
|
14237
|
+
withDisplays(g_stateObj.d_judgment, C_FLG_ON, g_lblNameObj.rd_Judgment),
|
|
14238
|
+
withDisplays(g_stateObj.d_fastslow, C_FLG_ON, g_lblNameObj.rd_FastSlow),
|
|
14239
|
+
withDisplays(g_stateObj.d_lifegauge, C_FLG_ON, g_lblNameObj.rd_LifeGauge),
|
|
14240
|
+
withDisplays(g_stateObj.d_score, C_FLG_ON, g_lblNameObj.rd_Score),
|
|
14241
|
+
withDisplays(g_stateObj.d_musicinfo, C_FLG_ON, g_lblNameObj.rd_MusicInfo),
|
|
14242
|
+
withDisplays(g_stateObj.d_filterline, C_FLG_ON, g_lblNameObj.rd_FilterLine),
|
|
14218
14243
|
].filter(value => value !== ``).join(`, `);
|
|
14219
14244
|
if (displayData === ``) {
|
|
14220
14245
|
displayData = `All Visible`;
|
|
14221
14246
|
} else {
|
|
14222
|
-
|
|
14223
|
-
|
|
14224
|
-
|
|
14247
|
+
// 表示設定のOFF項目を末尾にまとめる
|
|
14248
|
+
const displayList = displayData.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
14249
|
+
displayData = displayList.join(`, `);
|
|
14250
|
+
if (!displayList.at(-1).includes(`:`)) {
|
|
14251
|
+
displayData += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
14225
14252
|
}
|
|
14226
14253
|
}
|
|
14227
14254
|
|
|
14228
14255
|
let display2Data = [
|
|
14229
|
-
|
|
14230
|
-
|
|
14231
|
-
|
|
14232
|
-
|
|
14233
|
-
|
|
14234
|
-
|
|
14256
|
+
withDisplays(g_stateObj.d_speed, C_FLG_ON, g_lblNameObj.rd_Speed),
|
|
14257
|
+
withDisplays(g_stateObj.d_color, C_FLG_ON, g_lblNameObj.rd_Color),
|
|
14258
|
+
withDisplays(g_stateObj.d_lyrics, C_FLG_ON, g_lblNameObj.rd_Lyrics),
|
|
14259
|
+
withDisplays(g_stateObj.d_background, C_FLG_ON, g_lblNameObj.rd_Background),
|
|
14260
|
+
withDisplays(g_stateObj.d_arroweffect, C_FLG_ON, g_lblNameObj.rd_ArrowEffect),
|
|
14261
|
+
withDisplays(g_stateObj.d_special, C_FLG_ON, g_lblNameObj.rd_Special),
|
|
14235
14262
|
].filter(value => value !== ``).join(`, `);
|
|
14236
14263
|
if (display2Data !== ``) {
|
|
14237
|
-
|
|
14264
|
+
// 表示設定のOFF項目を末尾にまとめる
|
|
14265
|
+
const display2List = display2Data.split(`, `).sort((a, b) => b.includes(`:`) - a.includes(`:`));
|
|
14266
|
+
display2Data = display2List.join(`, `);
|
|
14267
|
+
if (!display2List.at(-1).includes(`:`)) {
|
|
14268
|
+
display2Data += ` : ${getStgDetailName(C_FLG_OFF)}`;
|
|
14269
|
+
}
|
|
14238
14270
|
}
|
|
14239
14271
|
|
|
14240
14272
|
const [lblRX, dataRX] = [20, 60];
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/02/
|
|
8
|
+
* Revised : 2026/02/18 (v44.2.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1281,6 +1281,7 @@ const g_settings = {
|
|
|
1281
1281
|
|
|
1282
1282
|
// Display設定の拡張リスト
|
|
1283
1283
|
d_stepZones: [`FlatBar`],
|
|
1284
|
+
d_speeds: [`Extreme`, `Soft`],
|
|
1284
1285
|
|
|
1285
1286
|
displayNum: {
|
|
1286
1287
|
stepZone: 0,
|
|
@@ -4120,6 +4121,8 @@ const g_lblNameObj = {
|
|
|
4120
4121
|
'u_Easy': `Easy`,
|
|
4121
4122
|
|
|
4122
4123
|
'u_FlatBar': `FlatBar`,
|
|
4124
|
+
'u_Extreme': `Extreme`,
|
|
4125
|
+
'u_Soft': `Soft`,
|
|
4123
4126
|
|
|
4124
4127
|
'u_Visible': `Visible`,
|
|
4125
4128
|
'u_Hidden': `Hidden`,
|