danoniplus 45.5.2 → 46.0.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 +170 -113
- package/js/lib/danoni_constants.js +48 -36
- 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/03/
|
|
7
|
+
* Revised : 2026/03/12
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver
|
|
12
|
-
const g_revisedDate = `2026/03/
|
|
11
|
+
const g_version = `Ver 46.0.0`;
|
|
12
|
+
const g_revisedDate = `2026/03/12`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -153,6 +153,7 @@ const C_ARW_WIDTH = 50;
|
|
|
153
153
|
// ON/OFFスイッチ
|
|
154
154
|
const C_FLG_ON = `ON`;
|
|
155
155
|
const C_FLG_OFF = `OFF`;
|
|
156
|
+
const C_FLG_HYPHEN = `---`;
|
|
156
157
|
const C_FLG_ALL = `ALL`;
|
|
157
158
|
const C_DIS_NONE = `none`;
|
|
158
159
|
const C_DIS_AUTO = `auto`;
|
|
@@ -217,6 +218,7 @@ const g_workObj = {
|
|
|
217
218
|
stepRtn: [],
|
|
218
219
|
stepHitRtn: [],
|
|
219
220
|
arrowRtn: [],
|
|
221
|
+
frzArrowInitRtn: [],
|
|
220
222
|
keyCtrl: [],
|
|
221
223
|
keyCtrlN: [],
|
|
222
224
|
keyHitFlg: [],
|
|
@@ -3597,6 +3599,7 @@ const headerConvert = _dosObj => {
|
|
|
3597
3599
|
g_imgType = g_keycons.imgTypes[0];
|
|
3598
3600
|
g_stateObj.rotateEnabled = obj.imgType[0].rotateEnabled;
|
|
3599
3601
|
g_stateObj.flatStepHeight = obj.imgType[0].flatStepHeight;
|
|
3602
|
+
changeSettingListsForImg();
|
|
3600
3603
|
|
|
3601
3604
|
const [titleArrowName, titleArrowRotate] = padArray(_dosObj.titleArrowName?.split(`:`), [`Original`, 180]);
|
|
3602
3605
|
obj.titleArrowNo = roundZero(g_keycons.imgTypes.findIndex(imgType => imgType === titleArrowName));
|
|
@@ -5094,7 +5097,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
5094
5097
|
|
|
5095
5098
|
// スクロールパターン (scrollX_Y)
|
|
5096
5099
|
// |scroll(newKey)=Cross::1,1,-1,-1,-1,1,1/Split::1,1,1,-1,-1,-1,-1$...|
|
|
5097
|
-
newKeyPairParam(newKey, `scroll`, `scrollDir`,
|
|
5100
|
+
newKeyPairParam(newKey, `scroll`, `scrollDir`, C_FLG_HYPHEN, 1);
|
|
5098
5101
|
|
|
5099
5102
|
// アシストパターン (assistX_Y)
|
|
5100
5103
|
// |assist(newKey)=Onigiri::0,0,0,0,0,1/AA::0,0,0,1,1,1$...|
|
|
@@ -7293,13 +7296,13 @@ const makeHighScore = _scoreId => {
|
|
|
7293
7296
|
}
|
|
7294
7297
|
multiAppend(detailHighScore,
|
|
7295
7298
|
createScoreLabel(chara, g_lblNameObj[`j_${chara}`], { yPos: j }),
|
|
7296
|
-
createScoreLabel(`${chara}S`, g_localStorage.highscores?.[scoreName]?.[chara] ??
|
|
7299
|
+
createScoreLabel(`${chara}S`, g_localStorage.highscores?.[scoreName]?.[chara] ?? C_FLG_HYPHEN,
|
|
7297
7300
|
{ xPos: 0, yPos: j, align: C_ALIGN_RIGHT }),
|
|
7298
7301
|
);
|
|
7299
7302
|
});
|
|
7300
7303
|
// Fast, Slow, 推定Adj, Excessive (値が無ければスキップ)
|
|
7301
7304
|
Object.keys(extData).forEach((chara, j) => {
|
|
7302
|
-
if (!hasVal(g_localStorage.highscores?.[scoreName]?.[chara],
|
|
7305
|
+
if (!hasVal(g_localStorage.highscores?.[scoreName]?.[chara], C_FLG_HYPHEN)) {
|
|
7303
7306
|
return;
|
|
7304
7307
|
}
|
|
7305
7308
|
multiAppend(detailHighScore,
|
|
@@ -7333,7 +7336,7 @@ const makeHighScore = _scoreId => {
|
|
|
7333
7336
|
`${g_localStorage.highscores?.[scoreName]?.fullCombo ?? '' ? '<span class="result_FullCombo">◆</span>' : ''}` +
|
|
7334
7337
|
`${g_localStorage.highscores?.[scoreName]?.perfect ?? '' ? '<span class="result_Perfect">◆</span>' : ''}` +
|
|
7335
7338
|
`${g_localStorage.highscores?.[scoreName]?.allPerfect ?? '' ? '<span class="result_AllPerfect">◆</span>' : ''}`, { xPos: 1, dx: 20, yPos: 12, w: 100, align: C_ALIGN_CENTER }),
|
|
7336
|
-
createScoreLabel(`lblHClearLamps`, `Cleared: ` + (g_localStorage.highscores?.[scoreName]?.clearLamps?.join(', ') ??
|
|
7339
|
+
createScoreLabel(`lblHClearLamps`, `Cleared: ` + (g_localStorage.highscores?.[scoreName]?.clearLamps?.join(', ') ?? C_FLG_HYPHEN), { yPos: 13, overflow: C_DIS_AUTO, w: g_sWidth / 2 + 40, h: 37 }),
|
|
7337
7340
|
|
|
7338
7341
|
createScoreLabel(`lblHShuffle`, g_stateObj.shuffle.indexOf(`Mirror`) < 0 ? `` : `Shuffle: <span class="common_iknai">${g_stateObj.shuffle}</span>`, { yPos: 11.5, dx: -130 }),
|
|
7339
7342
|
createScoreLabel(`lblHAssist`, g_autoPlaysBase.includes(g_stateObj.autoPlay) ? `` : `Assist: <span class="common_kita">${g_stateObj.autoPlay}</span>`, { yPos: 12.5, dx: -130 }),
|
|
@@ -7359,13 +7362,14 @@ const makeHighScore = _scoreId => {
|
|
|
7359
7362
|
tweetDifData += `:${getStgDetailName(g_stateObj.shuffle)}`;
|
|
7360
7363
|
}
|
|
7361
7364
|
|
|
7365
|
+
const storedExcessive = g_localStorage.highscores[scoreName]?.excessive;
|
|
7362
7366
|
const resultParams = {
|
|
7363
7367
|
hashTag: (hasVal(g_headerObj.hashTag) ? ` ${g_headerObj.hashTag}` : ``),
|
|
7364
7368
|
tuning: g_headerObj.creatorNames[_scoreId],
|
|
7365
7369
|
rankMark: g_localStorage.highscores?.[scoreName]?.rankMark || `--`,
|
|
7366
7370
|
playStyleData: g_localStorage.highscores[scoreName]?.playStyle || `--`,
|
|
7367
7371
|
highscore: g_localStorage.highscores[scoreName],
|
|
7368
|
-
tweetExcessive: hasVal(
|
|
7372
|
+
tweetExcessive: hasVal(storedExcessive, C_FLG_HYPHEN) ? `(+${storedExcessive})` : ``,
|
|
7369
7373
|
musicTitle, tweetDifData, tweetFrzJdg, tweetMaxCombo, baseTwitUrl,
|
|
7370
7374
|
};
|
|
7371
7375
|
const resultCommon = unEscapeHtml(makeResultText(g_templateObj.resultFormatDf, resultParams));
|
|
@@ -7530,7 +7534,7 @@ const setDifficulty = (_initFlg) => {
|
|
|
7530
7534
|
lnkDifficulty.innerHTML = difNames.join(``);
|
|
7531
7535
|
|
|
7532
7536
|
// 速度設定 (Speed)
|
|
7533
|
-
setSetting(0, `speed`, ` ${g_lblNameObj.multi}`);
|
|
7537
|
+
setSetting(0, `speed`, { unitName: ` ${g_lblNameObj.multi}` });
|
|
7534
7538
|
|
|
7535
7539
|
// リバース設定 (Reverse, Scroll)
|
|
7536
7540
|
if (g_headerObj.scrollUse) {
|
|
@@ -7933,27 +7937,27 @@ const createGeneralSetting = (_obj, _settingName, { unitName = ``,
|
|
|
7933
7937
|
multiAppend(_obj,
|
|
7934
7938
|
makeSettingLblCssButton(linkId, `${initName}${g_localStorage[_settingName] === g_stateObj[_settingName] ? ' *' : ''}`, 0,
|
|
7935
7939
|
() => {
|
|
7936
|
-
setSetting(skipTerms[1], _settingName,
|
|
7940
|
+
setSetting(skipTerms[1], _settingName, { func: () => addRFunc(), unitName, roundNum });
|
|
7937
7941
|
}, {
|
|
7938
7942
|
cxtFunc: () => {
|
|
7939
|
-
setSetting(skipTerms[1] * (-1), _settingName,
|
|
7943
|
+
setSetting(skipTerms[1] * (-1), _settingName, { func: () => addLFunc(), unitName, roundNum });
|
|
7940
7944
|
}
|
|
7941
7945
|
}),
|
|
7942
7946
|
|
|
7943
7947
|
// 右回し・左回しボタン(外側)
|
|
7944
7948
|
makeMiniCssButton(linkId, `R`, 0, () =>
|
|
7945
|
-
setSetting(skipTerms[0], _settingName,
|
|
7949
|
+
setSetting(skipTerms[0], _settingName, { func: () => addRFunc(), unitName, roundNum })),
|
|
7946
7950
|
makeMiniCssButton(linkId, `L`, 0, () =>
|
|
7947
|
-
setSetting(skipTerms[0] * (-1), _settingName,
|
|
7951
|
+
setSetting(skipTerms[0] * (-1), _settingName, { func: () => addLFunc(), unitName, roundNum })),
|
|
7948
7952
|
);
|
|
7949
7953
|
|
|
7950
7954
|
// 右回し・左回しボタン(内側)
|
|
7951
7955
|
if (skipTerms[1] > 1) {
|
|
7952
7956
|
multiAppend(_obj,
|
|
7953
7957
|
makeMiniCssButton(linkId, `RR`, 0, () =>
|
|
7954
|
-
setSetting(skipTerms[1], _settingName,
|
|
7958
|
+
setSetting(skipTerms[1], _settingName, { func: () => addRFunc(), unitName, roundNum })),
|
|
7955
7959
|
makeMiniCssButton(linkId, `LL`, 0, () =>
|
|
7956
|
-
setSetting(skipTerms[1] * (-1), _settingName,
|
|
7960
|
+
setSetting(skipTerms[1] * (-1), _settingName, { func: () => addLFunc(), unitName, roundNum })),
|
|
7957
7961
|
);
|
|
7958
7962
|
}
|
|
7959
7963
|
|
|
@@ -7961,10 +7965,10 @@ const createGeneralSetting = (_obj, _settingName, { unitName = ``,
|
|
|
7961
7965
|
if (skipTerms[2] > 1) {
|
|
7962
7966
|
multiAppend(_obj,
|
|
7963
7967
|
makeMiniCssButton(linkId, `RRR`, 0, () =>
|
|
7964
|
-
setSetting(skipTerms[2], _settingName,
|
|
7968
|
+
setSetting(skipTerms[2], _settingName, { func: () => addRFunc(), unitName, roundNum })
|
|
7965
7969
|
, { dw: -g_limitObj.setMiniWidth / 2 }),
|
|
7966
7970
|
makeMiniCssButton(linkId, `LLL`, 0, () =>
|
|
7967
|
-
setSetting(skipTerms[2] * (-1), _settingName,
|
|
7971
|
+
setSetting(skipTerms[2] * (-1), _settingName, { func: () => addLFunc(), unitName, roundNum })
|
|
7968
7972
|
, { dw: -g_limitObj.setMiniWidth / 2 }),
|
|
7969
7973
|
);
|
|
7970
7974
|
}
|
|
@@ -7972,8 +7976,8 @@ const createGeneralSetting = (_obj, _settingName, { unitName = ``,
|
|
|
7972
7976
|
// 右回し・左回しボタン(不可視)
|
|
7973
7977
|
if (hiddenBtn) {
|
|
7974
7978
|
multiAppend(_obj,
|
|
7975
|
-
makeMiniCssButton(linkId, `HR`, 0, () => setSetting(1, _settingName,
|
|
7976
|
-
makeMiniCssButton(linkId, `HL`, 0, () => setSetting(-1, _settingName,
|
|
7979
|
+
makeMiniCssButton(linkId, `HR`, 0, () => setSetting(1, _settingName, { func: () => addRFunc(), unitName, roundNum }), { visibility: `hidden` }),
|
|
7980
|
+
makeMiniCssButton(linkId, `HL`, 0, () => setSetting(-1, _settingName, { func: () => addLFunc(), unitName, roundNum }), { visibility: `hidden` }),
|
|
7977
7981
|
);
|
|
7978
7982
|
}
|
|
7979
7983
|
|
|
@@ -8018,20 +8022,20 @@ const getStgDetailName = _name => {
|
|
|
8018
8022
|
* 設定メイン・汎用
|
|
8019
8023
|
* @param {number} _scrollNum
|
|
8020
8024
|
* @param {string} _settingName
|
|
8021
|
-
* @param {
|
|
8022
|
-
* @param {
|
|
8023
|
-
* @param {
|
|
8025
|
+
* @param {function} [func=()=>true] 設定ボタンを押した後の追加処理
|
|
8026
|
+
* @param {string} [unitName=''] 設定の単位名
|
|
8027
|
+
* @param {number} [roundNum=0] 設定スキップ間隔の丸め基準数
|
|
8024
8028
|
*/
|
|
8025
|
-
const setSetting = (_scrollNum, _settingName,
|
|
8029
|
+
const setSetting = (_scrollNum, _settingName, { func = () => true, unitName = ``, roundNum = 0, maxSiz = g_limitObj.setLblSiz } = {}) => {
|
|
8026
8030
|
let settingNum = g_settings[`${_settingName}Num`];
|
|
8027
8031
|
const settingList = g_settings[`${_settingName}s`];
|
|
8028
8032
|
const settingMax = settingList.length - 1;
|
|
8029
8033
|
|
|
8030
8034
|
// _roundNum単位で丸める
|
|
8031
|
-
if (
|
|
8032
|
-
settingNum = Math.floor(settingNum /
|
|
8033
|
-
} else if (
|
|
8034
|
-
settingNum = Math.ceil(settingNum /
|
|
8035
|
+
if (roundNum > 0 && _scrollNum >= roundNum) {
|
|
8036
|
+
settingNum = Math.floor(settingNum / roundNum) * roundNum;
|
|
8037
|
+
} else if (roundNum > 0 && -_scrollNum >= roundNum) {
|
|
8038
|
+
settingNum = Math.ceil(settingNum / roundNum) * roundNum;
|
|
8035
8039
|
}
|
|
8036
8040
|
|
|
8037
8041
|
if (_scrollNum > 0) {
|
|
@@ -8041,8 +8045,12 @@ const setSetting = (_scrollNum, _settingName, _unitName = ``, _roundNum = 0, { f
|
|
|
8041
8045
|
}
|
|
8042
8046
|
g_stateObj[_settingName] = settingList[settingNum];
|
|
8043
8047
|
g_settings[`${_settingName}Num`] = settingNum;
|
|
8044
|
-
|
|
8045
|
-
|
|
8048
|
+
|
|
8049
|
+
const settingName = `${getStgDetailName(g_stateObj[_settingName])}${unitName}${g_localStorage[_settingName] === g_stateObj[_settingName] ? ' *' : ''}`;
|
|
8050
|
+
const lnkName = `lnk${toCapitalize(_settingName)}`;
|
|
8051
|
+
document.getElementById(lnkName).textContent = settingName;
|
|
8052
|
+
$id(lnkName).fontSize = wUnit(getFontSize2(settingName, parseFloat($id(lnkName).width), { maxSiz }));
|
|
8053
|
+
|
|
8046
8054
|
func();
|
|
8047
8055
|
|
|
8048
8056
|
if (document.getElementById(`settingSumSprite`) !== null) {
|
|
@@ -8393,7 +8401,7 @@ const makeSettingLblCssButton = (_id, _name, _heightPos, _func, {
|
|
|
8393
8401
|
x = g_limitObj.setLblLeft, y = g_limitObj.setLblHeight * _heightPos,
|
|
8394
8402
|
w = g_limitObj.setLblWidth, h = g_limitObj.setLblHeight, siz = g_limitObj.setLblSiz,
|
|
8395
8403
|
cxtFunc = () => true, ...rest } = {}, ..._classes) =>
|
|
8396
|
-
createCss2Button(_id, _name, _func, { x, y, w, h, siz, cxtFunc, ...rest }, g_cssObj.button_Default, ..._classes);
|
|
8404
|
+
createCss2Button(_id, _name, _func, { x, y, w, h, siz: getFontSize2(_name, w, { maxSiz: siz }), cxtFunc, ...rest }, g_cssObj.button_Default, ..._classes);
|
|
8397
8405
|
|
|
8398
8406
|
/**
|
|
8399
8407
|
* 譜面変更セレクター用ボタン
|
|
@@ -8704,67 +8712,9 @@ const exSettingInit = () => {
|
|
|
8704
8712
|
createEmptySprite(divRoot, `optionsprite`, g_windowObj.optionSprite);
|
|
8705
8713
|
const spriteList = setSpriteList(g_settingPos.exSetting);
|
|
8706
8714
|
|
|
8707
|
-
|
|
8708
|
-
* 拡張ボタンの表示・非表示と通常ボタンの幅変更
|
|
8709
|
-
* @param {string} _name
|
|
8710
|
-
* @param {string} _default
|
|
8711
|
-
*/
|
|
8712
|
-
const setExpandedBtnSiz = (_name, _default = C_FLG_OFF) => {
|
|
8713
|
-
const camelH = toCapitalize(_name);
|
|
8714
|
-
if (g_stateObj[_name] === _default) {
|
|
8715
|
-
$id(`lnk${camelH}Type`).display = C_DIS_NONE;
|
|
8716
|
-
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeft);
|
|
8717
|
-
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidth);
|
|
8718
|
-
} else {
|
|
8719
|
-
$id(`lnk${camelH}Type`).display = C_DIS_INHERIT;
|
|
8720
|
-
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeftShort);
|
|
8721
|
-
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidthShort);
|
|
8722
|
-
}
|
|
8723
|
-
};
|
|
8724
|
-
|
|
8725
|
-
/**
|
|
8726
|
-
* 拡張ボタンの作成
|
|
8727
|
-
* @param {string} _name
|
|
8728
|
-
* @returns {HTMLDivElement}
|
|
8729
|
-
*/
|
|
8730
|
-
const createExpandedBtn = _name =>
|
|
8731
|
-
createCss2Button(`lnk${toCapitalize(_name)}Type`, getStgDetailName(g_stateObj[`${_name}Type`]),
|
|
8732
|
-
() => {
|
|
8733
|
-
setSetting(1, `${_name}Type`);
|
|
8734
|
-
createExpandedScView(_name);
|
|
8735
|
-
},
|
|
8736
|
-
Object.assign(g_lblPosObj.btnReverse, {
|
|
8737
|
-
cxtFunc: () => {
|
|
8738
|
-
setSetting(-1, `${_name}Type`);
|
|
8739
|
-
createExpandedScView(_name);
|
|
8740
|
-
},
|
|
8741
|
-
title: g_msgObj[`${_name}Type`] ?? ``,
|
|
8742
|
-
}), g_cssObj.button_Default, g_cssObj.button_RevON);
|
|
8743
|
-
|
|
8744
|
-
/**
|
|
8745
|
-
* 拡張ボタンのショートカット表示
|
|
8746
|
-
* @param {string} _name
|
|
8747
|
-
*/
|
|
8748
|
-
const createExpandedScView = _name =>
|
|
8749
|
-
createScText(document.getElementById(`lnk${toCapitalize(_name)}Type`), `${toCapitalize(_name)}Type`, {
|
|
8750
|
-
displayName: `exSetting`, targetLabel: `lnk${toCapitalize(_name)}Type`, x: -13
|
|
8751
|
-
});
|
|
8752
|
-
|
|
8753
|
-
createGeneralSetting(spriteList.playWindow, `playWindow`, {
|
|
8754
|
-
addRFunc: () => setExpandedBtnSiz(`playWindow`, `Default`),
|
|
8755
|
-
});
|
|
8756
|
-
spriteList.playWindow.appendChild(createExpandedBtn(`playWindow`));
|
|
8757
|
-
setExpandedBtnSiz(`playWindow`, `Default`);
|
|
8758
|
-
createExpandedScView(`playWindow`);
|
|
8759
|
-
|
|
8715
|
+
createGeneralSettingEx(spriteList, `playWindow`, { defaultList: [`Default`] });
|
|
8760
8716
|
createGeneralSetting(spriteList.stepArea, `stepArea`);
|
|
8761
|
-
|
|
8762
|
-
addRFunc: () => setExpandedBtnSiz(`frzReturn`),
|
|
8763
|
-
});
|
|
8764
|
-
spriteList.frzReturn.appendChild(createExpandedBtn(`frzReturn`));
|
|
8765
|
-
setExpandedBtnSiz(`frzReturn`);
|
|
8766
|
-
createExpandedScView(`frzReturn`);
|
|
8767
|
-
|
|
8717
|
+
createGeneralSettingEx(spriteList, `frzReturn`);
|
|
8768
8718
|
createGeneralSetting(spriteList.shaking, `shaking`);
|
|
8769
8719
|
createGeneralSetting(spriteList.effect, `effect`, {
|
|
8770
8720
|
addRFunc: () => {
|
|
@@ -8773,7 +8723,7 @@ const exSettingInit = () => {
|
|
|
8773
8723
|
g_headerObj.arrowEffectSet = g_stateObj.d_arroweffect;
|
|
8774
8724
|
},
|
|
8775
8725
|
});
|
|
8776
|
-
|
|
8726
|
+
createGeneralSettingEx(spriteList, `camoufrage`, { defaultList: [] });
|
|
8777
8727
|
createGeneralSetting(spriteList.swapping, `swapping`);
|
|
8778
8728
|
createGeneralSetting(spriteList.judgRange, `judgRange`, {
|
|
8779
8729
|
addRFunc: () => {
|
|
@@ -8813,6 +8763,82 @@ const exSettingInit = () => {
|
|
|
8813
8763
|
g_skinJsObj.exSetting.forEach(func => func());
|
|
8814
8764
|
};
|
|
8815
8765
|
|
|
8766
|
+
/**
|
|
8767
|
+
* 拡張設定込みの標準設定
|
|
8768
|
+
* @param {any[]} _spriteList
|
|
8769
|
+
* @param {string} _name
|
|
8770
|
+
* @param {{ defaultList?: string[], displayName?: string }} [options={}]
|
|
8771
|
+
* @param {string[]} [options.defaultList=[C_FLG_OFF]] 拡張設定未使用の設定リスト
|
|
8772
|
+
* @param {string} [options.displayName='exSetting']
|
|
8773
|
+
*/
|
|
8774
|
+
const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF], displayName = `exSetting` } = {}) => {
|
|
8775
|
+
if (_spriteList?.[_name] === undefined) return;
|
|
8776
|
+
|
|
8777
|
+
/**
|
|
8778
|
+
* 拡張ボタンの表示・非表示と通常ボタンの幅変更
|
|
8779
|
+
*/
|
|
8780
|
+
const setExpandedBtnSiz = () => {
|
|
8781
|
+
const camelH = toCapitalize(_name);
|
|
8782
|
+
if (defaultList.includes(g_stateObj[_name])) {
|
|
8783
|
+
$id(`lnk${camelH}Type`).display = C_DIS_NONE;
|
|
8784
|
+
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeft);
|
|
8785
|
+
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidth);
|
|
8786
|
+
} else {
|
|
8787
|
+
$id(`lnk${camelH}Type`).display = C_DIS_INHERIT;
|
|
8788
|
+
$id(`lnk${camelH}`).left = wUnit(g_limitObj.setLblLeftShort);
|
|
8789
|
+
$id(`lnk${camelH}`).width = wUnit(g_limitObj.setLblWidthShort);
|
|
8790
|
+
}
|
|
8791
|
+
$id(`lnk${camelH}`).fontSize = wUnit(getFontSize2(getStgDetailName(g_stateObj[_name]), g_limitObj.setLblWidthShort, { maxSiz: g_limitObj.setLblSiz }));
|
|
8792
|
+
};
|
|
8793
|
+
|
|
8794
|
+
/**
|
|
8795
|
+
* 拡張ボタンの作成
|
|
8796
|
+
* @returns {HTMLDivElement}
|
|
8797
|
+
*/
|
|
8798
|
+
const createExpandedBtn = () =>
|
|
8799
|
+
createCss2Button(`lnk${toCapitalize(_name)}Type`, getStgDetailName(g_stateObj[`${_name}Type`]),
|
|
8800
|
+
() => {
|
|
8801
|
+
setSetting(1, `${_name}Type`, { maxSiz: g_limitObj.difSelectorSiz });
|
|
8802
|
+
createExpandedScView(_name);
|
|
8803
|
+
},
|
|
8804
|
+
Object.assign(g_lblPosObj.btnReverse, {
|
|
8805
|
+
cxtFunc: () => {
|
|
8806
|
+
setSetting(-1, `${_name}Type`, { maxSiz: g_limitObj.difSelectorSiz });
|
|
8807
|
+
createExpandedScView(_name);
|
|
8808
|
+
},
|
|
8809
|
+
title: g_msgObj[`${_name}Type`] ?? ``,
|
|
8810
|
+
}), g_cssObj.button_Default, g_cssObj.button_RevON);
|
|
8811
|
+
|
|
8812
|
+
/**
|
|
8813
|
+
* 拡張ボタンのショートカット表示、拡張ボタンのCSS切り替え
|
|
8814
|
+
*/
|
|
8815
|
+
const createExpandedScView = () => {
|
|
8816
|
+
const settingLabel = `${toCapitalize(_name)}Type`;
|
|
8817
|
+
if (document.getElementById(`sc${settingLabel}`) === null) {
|
|
8818
|
+
createScText(document.getElementById(`lnk${settingLabel}`), settingLabel, {
|
|
8819
|
+
displayName, targetLabel: `lnk${settingLabel}`, x: -13
|
|
8820
|
+
});
|
|
8821
|
+
}
|
|
8822
|
+
document.getElementById(`lnk${settingLabel}`).classList.remove(g_cssObj.button_RevON, g_cssObj.button_RevOFF);
|
|
8823
|
+
document.getElementById(`lnk${settingLabel}`).classList.add(g_cssObj[`button_Rev${boolToSwitch(g_stateObj[`${_name}Type`] !== C_FLG_HYPHEN)}`]);
|
|
8824
|
+
};
|
|
8825
|
+
|
|
8826
|
+
// TypeUse 未定義時は true 扱いにする
|
|
8827
|
+
const typeEnabled = setBoolVal(g_headerObj[`${_name}TypeUse`], true);
|
|
8828
|
+
createGeneralSetting(_spriteList[_name], _name, {
|
|
8829
|
+
addRFunc: () => {
|
|
8830
|
+
if (typeEnabled) {
|
|
8831
|
+
setExpandedBtnSiz();
|
|
8832
|
+
}
|
|
8833
|
+
},
|
|
8834
|
+
});
|
|
8835
|
+
if (typeEnabled) {
|
|
8836
|
+
_spriteList[_name].appendChild(createExpandedBtn());
|
|
8837
|
+
setExpandedBtnSiz();
|
|
8838
|
+
createExpandedScView();
|
|
8839
|
+
}
|
|
8840
|
+
}
|
|
8841
|
+
|
|
8816
8842
|
/*-----------------------------------------------------------*/
|
|
8817
8843
|
/* Scene : KEYCONFIG [orange] */
|
|
8818
8844
|
/*-----------------------------------------------------------*/
|
|
@@ -9385,6 +9411,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
9385
9411
|
g_stateObj.rotateEnabled = g_headerObj.imgType[nextNum].rotateEnabled;
|
|
9386
9412
|
g_stateObj.flatStepHeight = g_headerObj.imgType[nextNum].flatStepHeight;
|
|
9387
9413
|
|
|
9414
|
+
changeSettingListsForImg();
|
|
9388
9415
|
updateImgType(g_headerObj.imgType[nextNum]);
|
|
9389
9416
|
keyConfigInit(g_kcType);
|
|
9390
9417
|
};
|
|
@@ -9692,6 +9719,23 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
9692
9719
|
document.oncontextmenu = () => false;
|
|
9693
9720
|
};
|
|
9694
9721
|
|
|
9722
|
+
/**
|
|
9723
|
+
* 回転できないオブジェクトの場合に設定の自動絞り込みを行う
|
|
9724
|
+
*/
|
|
9725
|
+
const changeSettingListsForImg = () => {
|
|
9726
|
+
if (g_stateObj.rotateEnabled) {
|
|
9727
|
+
g_settings.camoufrages = g_settings.camoufrageRotates.concat();
|
|
9728
|
+
} else {
|
|
9729
|
+
g_settings.camoufrages = g_settings.camoufrageNoRotates.concat();
|
|
9730
|
+
if (g_stateObj.camoufrage.startsWith(`Color`)) {
|
|
9731
|
+
g_stateObj.camoufrage = `Color`;
|
|
9732
|
+
} else {
|
|
9733
|
+
g_stateObj.camoufrage = C_FLG_OFF;
|
|
9734
|
+
}
|
|
9735
|
+
}
|
|
9736
|
+
g_settings.camoufrageNum = g_settings.camoufrages.findIndex(val => val === g_stateObj.camoufrage);
|
|
9737
|
+
};
|
|
9738
|
+
|
|
9695
9739
|
/**
|
|
9696
9740
|
* 影矢印色の取得
|
|
9697
9741
|
* @param {number} _colorPos
|
|
@@ -10653,7 +10697,7 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
10653
10697
|
const ptnName = `${(g_keyObj.currentPtn === -1 ? g_keyObj.storagePtn : g_keyObj.currentPtn) + 1}`;
|
|
10654
10698
|
const keyName = setVal(g_keyObj[`transKey${_keyCtrlPtn}`], g_keyObj.currentKey);
|
|
10655
10699
|
let type = ``;
|
|
10656
|
-
if (g_stateObj.scroll !==
|
|
10700
|
+
if (g_stateObj.scroll !== C_FLG_HYPHEN) {
|
|
10657
10701
|
type = `Alt`;
|
|
10658
10702
|
} else if (g_stateObj.reverse === C_FLG_ON) {
|
|
10659
10703
|
type = `Rev`;
|
|
@@ -10695,7 +10739,7 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
10695
10739
|
|
|
10696
10740
|
// wordRev_dataが指定されている場合はそのままの位置を採用
|
|
10697
10741
|
// word_dataのみ指定されている場合、下記ルールに従って設定
|
|
10698
|
-
if (!wordTarget.includes(`Rev`) && g_stateObj.scroll ===
|
|
10742
|
+
if (!wordTarget.includes(`Rev`) && g_stateObj.scroll === C_FLG_HYPHEN) {
|
|
10699
10743
|
// Reverse時の歌詞の自動反転制御設定
|
|
10700
10744
|
if (g_headerObj.wordAutoReverse !== C_DIS_AUTO) {
|
|
10701
10745
|
wordReverseFlg = g_headerObj.wordAutoReverse === C_FLG_ON;
|
|
@@ -11738,6 +11782,8 @@ const getArrowSettings = () => {
|
|
|
11738
11782
|
delete g_workObj.arrivalFrame;
|
|
11739
11783
|
delete g_workObj.motionFrame;
|
|
11740
11784
|
|
|
11785
|
+
// 各種初期化
|
|
11786
|
+
// g_workObj.frzArrowInitRtnはフリーズアロー(初期表示)としての利用に限定
|
|
11741
11787
|
g_workObj.stepX = [];
|
|
11742
11788
|
g_workObj.scrollDir = [];
|
|
11743
11789
|
g_workObj.scrollDirDefault = [];
|
|
@@ -11746,6 +11792,7 @@ const getArrowSettings = () => {
|
|
|
11746
11792
|
g_workObj.stepRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11747
11793
|
g_workObj.stepHitRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11748
11794
|
g_workObj.arrowRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11795
|
+
g_workObj.frzArrowInitRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11749
11796
|
g_workObj.keyCtrl = structuredClone(g_keyObj[`keyCtrl${keyCtrlPtn}`]);
|
|
11750
11797
|
g_workObj.diffList = [];
|
|
11751
11798
|
g_workObj.mainEndTime = 0;
|
|
@@ -11769,6 +11816,7 @@ const getArrowSettings = () => {
|
|
|
11769
11816
|
changeStepRtn(`stepRtn`, 90 * sign);
|
|
11770
11817
|
changeStepRtn(`stepHitRtn`, 90 * sign);
|
|
11771
11818
|
changeStepRtn(`arrowRtn`, 90 * sign);
|
|
11819
|
+
changeStepRtn(`frzArrowInitRtn`, 90 * sign);
|
|
11772
11820
|
}
|
|
11773
11821
|
const div = g_keyObj[`div${keyCtrlPtn}`];
|
|
11774
11822
|
const divMax = g_keyObj[`divMax${keyCtrlPtn}`] ?? posMax;
|
|
@@ -11778,6 +11826,11 @@ const getArrowSettings = () => {
|
|
|
11778
11826
|
}
|
|
11779
11827
|
}
|
|
11780
11828
|
|
|
11829
|
+
// CamoufrageType: FrzArrowの場合のみ、フリーズアロー(初期)の矢印を180度回転
|
|
11830
|
+
if (g_stateObj.rotateEnabled && g_stateObj.camoufrageType === `FrzArrow`) {
|
|
11831
|
+
changeStepRtn(`frzArrowInitRtn`, 180);
|
|
11832
|
+
}
|
|
11833
|
+
|
|
11781
11834
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
11782
11835
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
11783
11836
|
|
|
@@ -11978,17 +12031,8 @@ const getArrowSettings = () => {
|
|
|
11978
12031
|
g_workObj.autoRetryFlg = false;
|
|
11979
12032
|
|
|
11980
12033
|
// Camoufrageの設定
|
|
11981
|
-
if (!g_stateObj.rotateEnabled) {
|
|
11982
|
-
|
|
11983
|
-
// 矢印の回転が無効の場合は、設定を変える
|
|
11984
|
-
if (g_stateObj.camoufrage === `Arrow`) {
|
|
11985
|
-
g_stateObj.camoufrage = C_FLG_OFF;
|
|
11986
|
-
} else if (g_stateObj.camoufrage === C_FLG_ALL) {
|
|
11987
|
-
g_stateObj.camoufrage = `Color`;
|
|
11988
|
-
}
|
|
11989
|
-
g_settings.camoufrageNum = g_settings.camoufrages.findIndex(val => val === g_stateObj.camoufrage);
|
|
11990
|
-
}
|
|
11991
12034
|
if (g_stateObj.camoufrage !== C_FLG_OFF) {
|
|
12035
|
+
|
|
11992
12036
|
const eachOrAll = [``, `All`];
|
|
11993
12037
|
const keyNum = g_keyObj[`chara${g_keyObj.currentKey}_${g_keyObj.currentPtn}`].length;
|
|
11994
12038
|
|
|
@@ -12005,13 +12049,16 @@ const getArrowSettings = () => {
|
|
|
12005
12049
|
const _copiedArray = structuredClone(_array);
|
|
12006
12050
|
return _array.map((_val, _i) => _array[_i] = _copiedArray[randArray[_i]]);
|
|
12007
12051
|
};
|
|
12008
|
-
if ([`Arrow`, C_FLG_ALL].includes(g_stateObj.camoufrage)) {
|
|
12009
12052
|
|
|
12010
|
-
|
|
12053
|
+
// 矢印ヒット時に元の矢印がわかるようにするため、あえて g_workObj.stepHitRtn はそのままにする
|
|
12054
|
+
if (g_stateObj.camoufrage.includes(`Step`)) {
|
|
12011
12055
|
g_workObj.stepRtn = getSwapArray(g_workObj.stepRtn);
|
|
12056
|
+
}
|
|
12057
|
+
if (g_stateObj.camoufrage.includes(`Arrow`)) {
|
|
12012
12058
|
g_workObj.arrowRtn = getSwapArray(g_workObj.arrowRtn);
|
|
12059
|
+
g_workObj.frzArrowInitRtn = getSwapArray(g_workObj.frzArrowInitRtn);
|
|
12013
12060
|
}
|
|
12014
|
-
if (
|
|
12061
|
+
if (g_stateObj.camoufrage.includes(`Color`)) {
|
|
12015
12062
|
eachOrAll.forEach(type => {
|
|
12016
12063
|
// ダミー矢印は対象外
|
|
12017
12064
|
g_workObj[`arrowColors${type}`] = getSwapArray(g_workObj[`arrowColors${type}`]);
|
|
@@ -13105,6 +13152,12 @@ const mainInit = () => {
|
|
|
13105
13152
|
const frzRoot = createEmptySprite(arrowSprite[g_workObj.dividePos[_j]], frzName, {
|
|
13106
13153
|
x: 0, y: 0, w: C_ARW_WIDTH, h: C_ARW_WIDTH + firstBarLength,
|
|
13107
13154
|
});
|
|
13155
|
+
|
|
13156
|
+
// CamoufrageType: FrzArrowの場合のみ、フリーズアローの帯を隠す
|
|
13157
|
+
if (g_stateObj.camoufrageType === `FrzArrow`) {
|
|
13158
|
+
_barColor = `#00000000`;
|
|
13159
|
+
}
|
|
13160
|
+
|
|
13108
13161
|
/**
|
|
13109
13162
|
* フリーズアロー毎の属性情報
|
|
13110
13163
|
*/
|
|
@@ -13174,12 +13227,12 @@ const mainInit = () => {
|
|
|
13174
13227
|
|
|
13175
13228
|
// 開始矢印の塗り部分。ヒット時は前面に表示
|
|
13176
13229
|
createColorObject2(`${_name}TopShadow${frzNo}`, {
|
|
13177
|
-
background: shadowColor, rotate: g_workObj.
|
|
13230
|
+
background: shadowColor, rotate: g_workObj.frzArrowInitRtn[_j], styleName: `Shadow`,
|
|
13178
13231
|
}, g_cssObj.main_objShadow),
|
|
13179
13232
|
|
|
13180
13233
|
// 開始矢印。ヒット時は非表示
|
|
13181
13234
|
createColorObject2(`${_name}Top${frzNo}`, {
|
|
13182
|
-
background: _normalColor, rotate: g_workObj.
|
|
13235
|
+
background: _normalColor, rotate: g_workObj.frzArrowInitRtn[_j],
|
|
13183
13236
|
}),
|
|
13184
13237
|
);
|
|
13185
13238
|
|
|
@@ -13187,12 +13240,12 @@ const mainInit = () => {
|
|
|
13187
13240
|
|
|
13188
13241
|
// 後発矢印の塗り部分
|
|
13189
13242
|
createColorObject2(`${_name}BtmShadow${frzNo}`, {
|
|
13190
|
-
background: shadowColor, rotate: g_workObj.
|
|
13243
|
+
background: shadowColor, rotate: g_workObj.frzArrowInitRtn[_j], styleName: `Shadow`,
|
|
13191
13244
|
}, g_cssObj.main_objShadow),
|
|
13192
13245
|
|
|
13193
13246
|
// 後発矢印
|
|
13194
13247
|
createColorObject2(`${_name}Btm${frzNo}`, {
|
|
13195
|
-
background: _normalColor, rotate: g_workObj.
|
|
13248
|
+
background: _normalColor, rotate: g_workObj.frzArrowInitRtn[_j],
|
|
13196
13249
|
}),
|
|
13197
13250
|
|
|
13198
13251
|
);
|
|
@@ -14904,7 +14957,7 @@ const resultInit = () => {
|
|
|
14904
14957
|
g_localStorage.highscores[scoreName].slow = g_resultObj.slow;
|
|
14905
14958
|
g_localStorage.highscores[scoreName].adj = estimatedAdj;
|
|
14906
14959
|
g_localStorage.highscores[scoreName].excessive = g_stateObj.excessive === C_FLG_ON ?
|
|
14907
|
-
g_resultObj.excessive :
|
|
14960
|
+
g_resultObj.excessive : C_FLG_HYPHEN;
|
|
14908
14961
|
|
|
14909
14962
|
if (g_presetObj.resultVals !== undefined) {
|
|
14910
14963
|
Object.keys(g_presetObj.resultVals).forEach(key =>
|
|
@@ -15280,7 +15333,7 @@ const getSelectedSettingList = (_shuffleName) => {
|
|
|
15280
15333
|
`${g_stateObj.speed}${g_lblNameObj.multi}`,
|
|
15281
15334
|
withOptions(g_stateObj.motion, C_FLG_OFF),
|
|
15282
15335
|
`${withOptions(g_stateObj.reverse, C_FLG_OFF,
|
|
15283
|
-
getStgDetailName(g_stateObj.scroll !==
|
|
15336
|
+
getStgDetailName(g_stateObj.scroll !== C_FLG_HYPHEN ? 'R-' : 'Reverse'))}${withOptions(g_stateObj.scroll, C_FLG_HYPHEN)}`,
|
|
15284
15337
|
withOptions(g_stateObj.appearance, `Visible`) +
|
|
15285
15338
|
((g_appearanceRanges.includes(g_stateObj.appearance) && g_stateObj.filterLock === C_FLG_ON) ? `(${g_hidSudObj.filterPos}%)` : ``),
|
|
15286
15339
|
withOptions(g_stateObj.gauge, g_settings.gauges[0]),
|
|
@@ -15291,7 +15344,11 @@ const getSelectedSettingList = (_shuffleName) => {
|
|
|
15291
15344
|
`FR:${getStgDetailName(g_stateObj.frzReturn)}(${getStgDetailName(g_stateObj.frzReturnType)})`),
|
|
15292
15345
|
withOptions(g_stateObj.shaking, C_FLG_OFF),
|
|
15293
15346
|
withOptions(g_stateObj.effect, C_FLG_OFF),
|
|
15294
|
-
|
|
15347
|
+
[
|
|
15348
|
+
withOptions(g_stateObj.camoufrage, C_FLG_OFF, `Cmf:${getStgDetailName(g_stateObj.camoufrage)}`),
|
|
15349
|
+
withOptions(g_stateObj.camoufrageType, C_FLG_HYPHEN,
|
|
15350
|
+
`${g_stateObj.camoufrage !== C_FLG_OFF ? '' : 'Cmf:'}${getStgDetailName(g_stateObj.camoufrageType)}`)
|
|
15351
|
+
].filter(value => value !== ``).join(`+`),
|
|
15295
15352
|
withOptions(g_stateObj.swapping, C_FLG_OFF, `Swap:${getStgDetailName(g_stateObj.swapping)}`),
|
|
15296
15353
|
withOptions(g_stateObj.judgRange, `Normal`, `Judg:${getStgDetailName(g_stateObj.judgRange)}`),
|
|
15297
15354
|
].filter(value => value !== ``).join(`, `);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/03/
|
|
8
|
+
* Revised : 2026/03/12 (v46.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1121,7 +1121,7 @@ const g_stateObj = {
|
|
|
1121
1121
|
speed: 3.5,
|
|
1122
1122
|
motion: C_FLG_OFF,
|
|
1123
1123
|
reverse: C_FLG_OFF,
|
|
1124
|
-
scroll:
|
|
1124
|
+
scroll: C_FLG_HYPHEN,
|
|
1125
1125
|
shuffle: C_FLG_OFF,
|
|
1126
1126
|
autoPlay: C_FLG_OFF,
|
|
1127
1127
|
autoAll: C_FLG_OFF,
|
|
@@ -1167,13 +1167,14 @@ const g_stateObj = {
|
|
|
1167
1167
|
opacity: 100,
|
|
1168
1168
|
|
|
1169
1169
|
playWindow: `Default`,
|
|
1170
|
-
playWindowType:
|
|
1170
|
+
playWindowType: C_FLG_HYPHEN,
|
|
1171
1171
|
stepArea: `Default`,
|
|
1172
1172
|
frzReturn: C_FLG_OFF,
|
|
1173
1173
|
frzReturnType: `360deg`,
|
|
1174
1174
|
shaking: C_FLG_OFF,
|
|
1175
1175
|
effect: C_FLG_OFF,
|
|
1176
1176
|
camoufrage: C_FLG_OFF,
|
|
1177
|
+
camoufrageType: C_FLG_HYPHEN,
|
|
1177
1178
|
swapping: C_FLG_OFF,
|
|
1178
1179
|
judgRange: `Normal`,
|
|
1179
1180
|
autoRetry: C_FLG_OFF,
|
|
@@ -1338,7 +1339,7 @@ const g_settings = {
|
|
|
1338
1339
|
playWindows: [`Default`, `Stairs`, `Slope`, `Distorted`, `SideScroll`],
|
|
1339
1340
|
playWindowNum: 0,
|
|
1340
1341
|
|
|
1341
|
-
playWindowTypes: [
|
|
1342
|
+
playWindowTypes: [C_FLG_HYPHEN, `Reverse`],
|
|
1342
1343
|
playWindowTypeNum: 0,
|
|
1343
1344
|
|
|
1344
1345
|
stepAreas: [`Default`, `Halfway`, `2Step`, `Mismatched`, `R-Mismatched`, `X-Flower`, `Alt-Crossing`],
|
|
@@ -1357,9 +1358,15 @@ const g_settings = {
|
|
|
1357
1358
|
effects: [C_FLG_OFF, `Dizzy`, `Spin`, `Wave`, `Storm`, `Blinking`, `Squids`],
|
|
1358
1359
|
effectNum: 0,
|
|
1359
1360
|
|
|
1360
|
-
camoufrages: [C_FLG_OFF, `Color`, `Arrow`, `
|
|
1361
|
+
camoufrages: [C_FLG_OFF, `Color`, `Arrow`, `Step+Arrow`, `Color+Arrow`, `Color+Step+Arrow`],
|
|
1361
1362
|
camoufrageNum: 0,
|
|
1362
1363
|
|
|
1364
|
+
camoufrageRotates: [C_FLG_OFF, `Color`, `Arrow`, `Step+Arrow`, `Color+Arrow`, `Color+Step+Arrow`],
|
|
1365
|
+
camoufrageNoRotates: [C_FLG_OFF, `Color`],
|
|
1366
|
+
|
|
1367
|
+
camoufrageTypes: [C_FLG_HYPHEN, `FrzArrow`],
|
|
1368
|
+
camoufrageTypeNum: 0,
|
|
1369
|
+
|
|
1363
1370
|
swappings: [C_FLG_OFF, `Mirror`, `X-Mirror`],
|
|
1364
1371
|
swappingNum: 0,
|
|
1365
1372
|
|
|
@@ -2171,7 +2178,7 @@ let g_storeSettingsEx = [`d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`
|
|
|
2171
2178
|
`d_score`, `d_musicinfo`, `d_filterline`];
|
|
2172
2179
|
|
|
2173
2180
|
let g_canDisabledSettings = [`speed`, `motion`, `scroll`, `reverse`, `shuffle`, `autoPlay`, `gauge`,
|
|
2174
|
-
`excessive`, `appearance`, `playWindow`, `stepArea`, `frzReturn`, `shaking`, `effect`, `camoufrage`,
|
|
2181
|
+
`excessive`, `appearance`, `playWindow`, `stepArea`, `frzReturn`, `shaking`, `effect`, `camoufrage`, `camoufrageType`,
|
|
2175
2182
|
`swapping`, `judgRange`, `autoRetry`];
|
|
2176
2183
|
|
|
2177
2184
|
const g_hidSudFunc = new Map([
|
|
@@ -2870,6 +2877,7 @@ const g_shortcutObj = {
|
|
|
2870
2877
|
KeyH: { id: `lnkShakingR` },
|
|
2871
2878
|
KeyE: { id: `lnkEffectR` },
|
|
2872
2879
|
KeyC: { id: `lnkCamoufrageR` },
|
|
2880
|
+
KeyG: { id: `lnkCamoufrageType` },
|
|
2873
2881
|
KeyW: { id: `lnkSwappingR` },
|
|
2874
2882
|
KeyJ: { id: `lnkJudgRangeR` },
|
|
2875
2883
|
KeyA: { id: `lnkAutoRetryR` },
|
|
@@ -3484,28 +3492,28 @@ const g_keyObj = {
|
|
|
3484
3492
|
},
|
|
3485
3493
|
|
|
3486
3494
|
// スクロール拡張オプション
|
|
3487
|
-
scrollName_def: [
|
|
3495
|
+
scrollName_def: [C_FLG_HYPHEN],
|
|
3488
3496
|
scrollDir5_0: {
|
|
3489
|
-
|
|
3497
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1],
|
|
3490
3498
|
'Cross': [1, -1, -1, 1, 1],
|
|
3491
3499
|
'Split': [1, 1, -1, -1, -1],
|
|
3492
3500
|
'Alternate': [1, -1, 1, -1, 1],
|
|
3493
3501
|
},
|
|
3494
3502
|
scrollDir5_1: {
|
|
3495
|
-
|
|
3503
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1],
|
|
3496
3504
|
'Cross': [1, 1, -1, -1, 1],
|
|
3497
3505
|
'Split': [1, 1, 1, -1, -1],
|
|
3498
3506
|
'Alternate': [1, -1, 1, -1, 1],
|
|
3499
3507
|
},
|
|
3500
3508
|
scrollDir5_2: {
|
|
3501
|
-
|
|
3509
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1],
|
|
3502
3510
|
'Cross': [1, -1, -1, -1, 1],
|
|
3503
3511
|
'Split': [1, 1, -1, -1, -1],
|
|
3504
3512
|
'Alternate': [1, -1, 1, -1, 1],
|
|
3505
3513
|
},
|
|
3506
3514
|
|
|
3507
3515
|
scrollDir7_0: {
|
|
3508
|
-
|
|
3516
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1],
|
|
3509
3517
|
'Cross': [1, 1, -1, -1, -1, 1, 1],
|
|
3510
3518
|
'Split': [1, 1, 1, -1, -1, -1, -1],
|
|
3511
3519
|
'Alternate': [1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3514,7 +3522,7 @@ const g_keyObj = {
|
|
|
3514
3522
|
},
|
|
3515
3523
|
|
|
3516
3524
|
scrollDir7i_0: {
|
|
3517
|
-
|
|
3525
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1],
|
|
3518
3526
|
'Cross': [1, 1, -1, -1, -1, 1, 1],
|
|
3519
3527
|
'Split': [1, 1, 1, -1, -1, -1, -1],
|
|
3520
3528
|
'Alternate': [1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3523,7 +3531,7 @@ const g_keyObj = {
|
|
|
3523
3531
|
},
|
|
3524
3532
|
|
|
3525
3533
|
scrollDir8_0: {
|
|
3526
|
-
|
|
3534
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1],
|
|
3527
3535
|
'Cross': [1, 1, -1, -1, -1, 1, 1, 1],
|
|
3528
3536
|
'Split': [1, 1, 1, 1, -1, -1, -1, -1],
|
|
3529
3537
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1],
|
|
@@ -3531,7 +3539,7 @@ const g_keyObj = {
|
|
|
3531
3539
|
'Asymmetry': [1, -1, 1, -1, -1, 1, -1, 1],
|
|
3532
3540
|
},
|
|
3533
3541
|
scrollDir8_1: {
|
|
3534
|
-
|
|
3542
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1],
|
|
3535
3543
|
'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
|
|
3536
3544
|
'Split': [1, 1, 1, 1, -1, -1, -1, -1],
|
|
3537
3545
|
'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3539,7 +3547,7 @@ const g_keyObj = {
|
|
|
3539
3547
|
'Asymmetry': [1, -1, 1, -1, -1, 1, -1, 1],
|
|
3540
3548
|
},
|
|
3541
3549
|
scrollDir8_2: {
|
|
3542
|
-
|
|
3550
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1],
|
|
3543
3551
|
'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
|
|
3544
3552
|
'Split': [1, 1, 1, 1, 1, -1, -1, -1],
|
|
3545
3553
|
'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3548,7 +3556,7 @@ const g_keyObj = {
|
|
|
3548
3556
|
},
|
|
3549
3557
|
|
|
3550
3558
|
scrollDir9A_0: {
|
|
3551
|
-
|
|
3559
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3552
3560
|
'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
|
|
3553
3561
|
'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
|
|
3554
3562
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3556,7 +3564,7 @@ const g_keyObj = {
|
|
|
3556
3564
|
'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
|
|
3557
3565
|
},
|
|
3558
3566
|
scrollDir9B_0: {
|
|
3559
|
-
|
|
3567
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3560
3568
|
'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
|
|
3561
3569
|
'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
|
|
3562
3570
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3564,7 +3572,7 @@ const g_keyObj = {
|
|
|
3564
3572
|
'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
|
|
3565
3573
|
},
|
|
3566
3574
|
scrollDir9i_1: {
|
|
3567
|
-
|
|
3575
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3568
3576
|
'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
|
|
3569
3577
|
'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
|
|
3570
3578
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3572,7 +3580,7 @@ const g_keyObj = {
|
|
|
3572
3580
|
'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
|
|
3573
3581
|
},
|
|
3574
3582
|
scrollDir9d_0: {
|
|
3575
|
-
|
|
3583
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3576
3584
|
'Cross': [1, 1, 1, -1, -1, -1, 1, 1, 1],
|
|
3577
3585
|
'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
|
|
3578
3586
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3580,16 +3588,16 @@ const g_keyObj = {
|
|
|
3580
3588
|
'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
|
|
3581
3589
|
},
|
|
3582
3590
|
scrollDir9h_0: {
|
|
3583
|
-
|
|
3591
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3584
3592
|
'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1],
|
|
3585
3593
|
},
|
|
3586
3594
|
|
|
3587
3595
|
scrollDir11_0: {
|
|
3588
|
-
|
|
3596
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3589
3597
|
'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1],
|
|
3590
3598
|
},
|
|
3591
3599
|
scrollDir11_1: {
|
|
3592
|
-
|
|
3600
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3593
3601
|
'Cross': [1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1],
|
|
3594
3602
|
'Split': [-1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1],
|
|
3595
3603
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3597,15 +3605,15 @@ const g_keyObj = {
|
|
|
3597
3605
|
'Asymmetry': [1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1],
|
|
3598
3606
|
},
|
|
3599
3607
|
scrollDir11L_0: {
|
|
3600
|
-
|
|
3608
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3601
3609
|
'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1],
|
|
3602
3610
|
},
|
|
3603
3611
|
scrollDir11W_0: {
|
|
3604
|
-
|
|
3612
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3605
3613
|
'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1],
|
|
3606
3614
|
},
|
|
3607
3615
|
scrollDir11i_0: {
|
|
3608
|
-
|
|
3616
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3609
3617
|
'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
|
|
3610
3618
|
'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
|
|
3611
3619
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3613,7 +3621,7 @@ const g_keyObj = {
|
|
|
3613
3621
|
'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
|
|
3614
3622
|
},
|
|
3615
3623
|
scrollDir11j_0: {
|
|
3616
|
-
|
|
3624
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3617
3625
|
'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
|
|
3618
3626
|
'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
|
|
3619
3627
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3621,23 +3629,23 @@ const g_keyObj = {
|
|
|
3621
3629
|
},
|
|
3622
3630
|
|
|
3623
3631
|
scrollDir12_0: {
|
|
3624
|
-
|
|
3632
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3625
3633
|
'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
3626
3634
|
'Twist': [1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1],
|
|
3627
3635
|
},
|
|
3628
3636
|
scrollDir12i_0: {
|
|
3629
|
-
|
|
3637
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3630
3638
|
'Cross': [1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1],
|
|
3631
3639
|
'Split': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
|
|
3632
3640
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1],
|
|
3633
3641
|
},
|
|
3634
3642
|
scrollDir13_0: {
|
|
3635
|
-
|
|
3643
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3636
3644
|
'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
3637
3645
|
'Cross': [-1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1],
|
|
3638
3646
|
},
|
|
3639
3647
|
scrollDir13_1: {
|
|
3640
|
-
|
|
3648
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3641
3649
|
'Cross': [1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1],
|
|
3642
3650
|
'Split': [-1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1],
|
|
3643
3651
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
@@ -3645,30 +3653,30 @@ const g_keyObj = {
|
|
|
3645
3653
|
'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1],
|
|
3646
3654
|
},
|
|
3647
3655
|
scrollDir14_0: {
|
|
3648
|
-
|
|
3656
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3649
3657
|
'Flat': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
3650
3658
|
},
|
|
3651
3659
|
|
|
3652
3660
|
scrollDir14i_0: {
|
|
3653
|
-
|
|
3661
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3654
3662
|
'Flat': [1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1],
|
|
3655
3663
|
},
|
|
3656
3664
|
scrollDir15A_0: {
|
|
3657
|
-
|
|
3665
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3658
3666
|
'Flat': [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1],
|
|
3659
3667
|
},
|
|
3660
3668
|
scrollDir16i_0: {
|
|
3661
|
-
|
|
3669
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3662
3670
|
'Flat': [1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
3663
3671
|
},
|
|
3664
3672
|
scrollDir17_0: {
|
|
3665
|
-
|
|
3673
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3666
3674
|
'Cross': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1],
|
|
3667
3675
|
'Split': [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
3668
3676
|
'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
|
|
3669
3677
|
},
|
|
3670
3678
|
scrollDir23_0: {
|
|
3671
|
-
|
|
3679
|
+
[C_FLG_HYPHEN]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3672
3680
|
'Flat': [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
3673
3681
|
'Cross': [-1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
3674
3682
|
'Twist': [1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1],
|
|
@@ -4519,6 +4527,8 @@ const g_lblNameObj = {
|
|
|
4519
4527
|
|
|
4520
4528
|
'u_Color': `Color`,
|
|
4521
4529
|
'u_Arrow': `Arrow`,
|
|
4530
|
+
'u_Color+Arrow': `Color+Arrow`,
|
|
4531
|
+
'u_FrzArrow': `FrzArrow`,
|
|
4522
4532
|
|
|
4523
4533
|
'u_Narrow': `Narrow`,
|
|
4524
4534
|
'u_Hard': `Hard`,
|
|
@@ -4778,6 +4788,7 @@ const g_lang_msgObj = {
|
|
|
4778
4788
|
`[H-Drunk] S-Drunkより大きく上下に揺らし、さらに回転が掛かります`,
|
|
4779
4789
|
effect: `矢印・フリーズアローにエフェクトをかけます。\n[Dizzy/Spin] 矢印が回転します\n[Wave/Storm] 矢印の軌道が左右に揺れます\n[Blinking] 矢印が点滅します\n[Squids] 矢印が伸び縮みします`,
|
|
4780
4790
|
camoufrage: `ステップの見た目が配置は同じでランダムに変わります。`,
|
|
4791
|
+
camoufrageType: `[FrzArrow] フリーズアローの帯部分を初期表示のみ非表示にし、矢印のみで表示します(ヒット/失敗時は帯を再表示)`,
|
|
4781
4792
|
swapping: `ステップゾーンの位置をグループ単位で入れ替えます。`,
|
|
4782
4793
|
judgRange: `判定の許容範囲を設定します。\n[Normal] 通常、[Narrow/Hard] 辛判定、[ExHard] 激辛判定`,
|
|
4783
4794
|
autoRetry: `自動リトライの条件を設定します。\n[Miss] ミス時、[Matari] マターリ時、[Shakin] シャキン時、[FS] Fast/Slow発生時`,
|
|
@@ -4875,6 +4886,7 @@ const g_lang_msgObj = {
|
|
|
4875
4886
|
`[H-Drunk] Adds stronger vertical movement than S-Drunk and adds rotation.`,
|
|
4876
4887
|
effect: `Applies effects to the arrows and freeze arrows.\n[Dizzy/Spin] Arrows rotate.\n[Wave/Storm] Swing from left to right.\n[Blinking] Arrows blink.\n[Squids] Arrows stretch and shrink.`,
|
|
4877
4888
|
camoufrage: `The appearance of the steps changes randomly with the same placement.`,
|
|
4889
|
+
camoufrageType: `[FrzArrow] Initially hides freeze-arrow bars and displays only the arrow portion (bars reappear on hit/failure)`,
|
|
4878
4890
|
swapping: `Replaces the position of step zones on a group-by-group basis.`,
|
|
4879
4891
|
judgRange: `Set the allowable range of judgment.\n[Normal] Normal judgment, [Narrow/Hard] Hard judgment, [ExHard] Very hard judgment`,
|
|
4880
4892
|
autoRetry: `Set the conditions for automatic retry.\n[Miss] When missed, [Matari] When good, [Shakin] When great, [FS] When Fast/Slow occurs`,
|