danoniplus 35.4.5 → 36.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 +281 -144
- package/js/lib/danoni_constants.js +75 -43
- 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 : 2024/
|
|
7
|
+
* Revised : 2024/04/15
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver
|
|
12
|
-
const g_revisedDate = `2024/
|
|
11
|
+
const g_version = `Ver 36.0.0`;
|
|
12
|
+
const g_revisedDate = `2024/04/15`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -247,6 +247,12 @@ const convertStrToVal = _str => {
|
|
|
247
247
|
return convStrs;
|
|
248
248
|
};
|
|
249
249
|
|
|
250
|
+
/**
|
|
251
|
+
* 半角スペース、タブを文字列から除去
|
|
252
|
+
* @param {string} _str
|
|
253
|
+
*/
|
|
254
|
+
const trimStr = _str => _str?.split(`\t`).join(``).trimStart().trimEnd();
|
|
255
|
+
|
|
250
256
|
/*-----------------------------------------------------------*/
|
|
251
257
|
/* 値や配列のチェック・変換 */
|
|
252
258
|
/*-----------------------------------------------------------*/
|
|
@@ -472,7 +478,7 @@ const fuzzyListMatching = (_str, _headerList, _footerList) =>
|
|
|
472
478
|
*/
|
|
473
479
|
const replaceStr = (_str, _pairs) => {
|
|
474
480
|
let tmpStr = _str;
|
|
475
|
-
_pairs.forEach(pair => tmpStr = tmpStr
|
|
481
|
+
_pairs.forEach(pair => tmpStr = tmpStr?.replaceAll(pair[0], pair[1]));
|
|
476
482
|
return tmpStr;
|
|
477
483
|
};
|
|
478
484
|
|
|
@@ -1262,7 +1268,8 @@ const deleteDiv = (_parentId, _idName) => {
|
|
|
1262
1268
|
* @param {object} _obj (x, y, w, h, siz, align, title, groupName, initDisabledFlg, ...rest)
|
|
1263
1269
|
* @param {...any} _classes
|
|
1264
1270
|
*/
|
|
1265
|
-
const createCss2Button = (_id, _text, _func = _ => true, {
|
|
1271
|
+
const createCss2Button = (_id, _text, _func = _ => true, {
|
|
1272
|
+
x = 0, y = g_sHeight - 100, w = g_btnWidth() / 3, h = g_limitObj.btnHeight,
|
|
1266
1273
|
siz = g_limitObj.btnSiz, align = C_ALIGN_CENTER, title = ``, groupName = g_currentPage, initDisabledFlg = true,
|
|
1267
1274
|
resetFunc = _ => true, cxtFunc = _ => true, ...rest } = {}, ..._classes) => {
|
|
1268
1275
|
|
|
@@ -1586,7 +1593,7 @@ const makeSpriteData = (_data, _calcFrame = _frame => _frame) => {
|
|
|
1586
1593
|
let maxDepth = -1;
|
|
1587
1594
|
|
|
1588
1595
|
splitLF(_data).filter(data => hasVal(data)).forEach(tmpData => {
|
|
1589
|
-
const tmpSpriteData = tmpData.split(`,`);
|
|
1596
|
+
const tmpSpriteData = tmpData.split(`,`).map(val => trimStr(val));
|
|
1590
1597
|
|
|
1591
1598
|
// 深度が"-"の場合はスキップ
|
|
1592
1599
|
if (tmpSpriteData.length <= 1 || tmpSpriteData[1] === `-`) {
|
|
@@ -1670,7 +1677,7 @@ const makeSpriteData = (_data, _calcFrame = _frame => _frame) => {
|
|
|
1670
1677
|
const makeStyleData = (_data, _calcFrame = _frame => _frame) => {
|
|
1671
1678
|
const spriteData = [];
|
|
1672
1679
|
splitLF(_data).filter(data => hasVal(data)).forEach(tmpData => {
|
|
1673
|
-
const tmpSpriteData = tmpData.split(`,`);
|
|
1680
|
+
const tmpSpriteData = tmpData.split(`,`).map(val => trimStr(val));
|
|
1674
1681
|
|
|
1675
1682
|
// カスタムプロパティの名称(--始まり)で無い場合はコメントと見做してスキップ
|
|
1676
1683
|
if (tmpSpriteData.length <= 1 || !tmpSpriteData[1].startsWith(`--`)) {
|
|
@@ -4237,7 +4244,7 @@ const titleInit = _ => {
|
|
|
4237
4244
|
|
|
4238
4245
|
// Click Here
|
|
4239
4246
|
createCss2Button(`btnStart`, g_lblNameObj.clickHere, _ => clearTimeout(g_timeoutEvtTitleId), {
|
|
4240
|
-
w:
|
|
4247
|
+
x: g_btnX(), w: g_btnWidth(), siz: g_limitObj.titleSiz, resetFunc: _ => optionInit(),
|
|
4241
4248
|
}, g_cssObj.button_Start),
|
|
4242
4249
|
|
|
4243
4250
|
// Reset
|
|
@@ -4384,8 +4391,8 @@ const makeWarningWindow = (_text = ``, { resetFlg = false, backBtnUse = false }
|
|
|
4384
4391
|
* お知らせウィンドウ(汎用)を表示
|
|
4385
4392
|
* @param {string} _text
|
|
4386
4393
|
*/
|
|
4387
|
-
const makeInfoWindow = (_text, _animationName = ``, { _backColor = `#ccccff
|
|
4388
|
-
const lblWarning = setWindowStyle(`<p>${_text}</p>`, _backColor, `#000066`, C_ALIGN_CENTER
|
|
4394
|
+
const makeInfoWindow = (_text, _animationName = ``, { _backColor = `#ccccff` } = {}) => {
|
|
4395
|
+
const lblWarning = setWindowStyle(`<p>${_text}</p>`, _backColor, `#000066`, C_ALIGN_CENTER);
|
|
4389
4396
|
lblWarning.style.pointerEvents = C_DIS_NONE;
|
|
4390
4397
|
|
|
4391
4398
|
if (_animationName !== ``) {
|
|
@@ -4404,13 +4411,13 @@ const makeInfoWindow = (_text, _animationName = ``, { _backColor = `#ccccff`, _x
|
|
|
4404
4411
|
* @param {string} _textColor
|
|
4405
4412
|
* @param {string} _align
|
|
4406
4413
|
*/
|
|
4407
|
-
const setWindowStyle = (_text, _bkColor, _textColor, _align = C_ALIGN_LEFT, { _x =
|
|
4414
|
+
const setWindowStyle = (_text, _bkColor, _textColor, _align = C_ALIGN_LEFT, { _x = g_btnX(), _y = 0, _w = g_btnWidth() } = {}) => {
|
|
4408
4415
|
|
|
4409
4416
|
deleteDiv(divRoot, `lblWarning`);
|
|
4410
4417
|
|
|
4411
4418
|
// ウィンドウ枠の行を取得するために一時的な枠を作成
|
|
4412
4419
|
const tmplbl = createDivCss2Label(`lblTmpWarning`, _text, {
|
|
4413
|
-
x:
|
|
4420
|
+
x: _x, y: 70, w: _w, h: 20, siz: g_limitObj.mainSiz, lineHeight: wUnit(15), fontFamily: getBasicFont(),
|
|
4414
4421
|
whiteSpace: `normal`,
|
|
4415
4422
|
});
|
|
4416
4423
|
divRoot.appendChild(tmplbl);
|
|
@@ -4421,7 +4428,7 @@ const setWindowStyle = (_text, _bkColor, _textColor, _align = C_ALIGN_LEFT, { _x
|
|
|
4421
4428
|
const warnHeight = Math.min(150, Math.max(range.getClientRects().length,
|
|
4422
4429
|
_text.split(`<br>`).length + _text.split(`<p>`).length - 1) * 21);
|
|
4423
4430
|
const lbl = createDivCss2Label(`lblWarning`, _text, {
|
|
4424
|
-
x: _x, y: 70 + _y, w:
|
|
4431
|
+
x: _x, y: 70 + _y, w: _w, h: warnHeight, siz: g_limitObj.mainSiz, backgroundColor: _bkColor,
|
|
4425
4432
|
opacity: 0.9, lineHeight: wUnit(15), color: _textColor, align: _align, fontFamily: getBasicFont(),
|
|
4426
4433
|
whiteSpace: `normal`,
|
|
4427
4434
|
});
|
|
@@ -6320,12 +6327,13 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6320
6327
|
adjustScrollPoint(parseFloat($id(`arrow${_j}`).left));
|
|
6321
6328
|
};
|
|
6322
6329
|
|
|
6330
|
+
const addLeft = (maxLeftX === 0 ? 0 : - maxLeftX + g_limitObj.kcColorPickerX);
|
|
6323
6331
|
for (let j = 0; j < keyNum; j++) {
|
|
6324
6332
|
|
|
6325
6333
|
const posj = g_keyObj[`pos${keyCtrlPtn}`][j];
|
|
6326
6334
|
const stdPos = posj - ((posj > divideCnt ? posMax : 0) + divideCnt) / 2;
|
|
6327
6335
|
|
|
6328
|
-
const keyconX = g_keyObj.blank * stdPos + (kWidth - C_ARW_WIDTH) / 2
|
|
6336
|
+
const keyconX = g_keyObj.blank * stdPos + (kWidth - C_ARW_WIDTH) / 2 + addLeft;
|
|
6329
6337
|
const keyconY = C_KYC_HEIGHT * (Number(posj > divideCnt)) + 12;
|
|
6330
6338
|
const colorPos = g_keyObj[`color${keyCtrlPtn}`][j];
|
|
6331
6339
|
const arrowColor = getKeyConfigColor(j, colorPos);
|
|
@@ -6450,7 +6458,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6450
6458
|
* @returns ラベル
|
|
6451
6459
|
*/
|
|
6452
6460
|
const makeKCButtonHeader = (_id, _name, {
|
|
6453
|
-
x =
|
|
6461
|
+
x = g_btnX(5 / 6) - 30, y = 0, w = g_btnWidth(1 / 6), h = 20, siz = 12, align = C_ALIGN_LEFT, ...rest
|
|
6454
6462
|
} = {}, ..._classes) => createDivCss2Label(_id, g_lblNameObj[_name], { x, y, w, h, siz, align, ...rest }, ..._classes);
|
|
6455
6463
|
|
|
6456
6464
|
/**
|
|
@@ -6463,7 +6471,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6463
6471
|
* @param {...any} _classes
|
|
6464
6472
|
* @returns ボタン
|
|
6465
6473
|
*/
|
|
6466
|
-
const makeKCButton = (_id, _text, _func, { x =
|
|
6474
|
+
const makeKCButton = (_id, _text, _func, { x = g_btnX(5 / 6) - 20, y = 15, w = g_btnWidth(1 / 6), h = 18,
|
|
6467
6475
|
siz = g_limitObj.jdgCntsSiz, borderStyle = `solid`, cxtFunc, ...rest } = {}, _mainClass = g_cssObj.button_RevOFF, ..._classes) =>
|
|
6468
6476
|
makeSettingLblCssButton(_id, getStgDetailName(_text), 0, _func, { x, y, w, h, siz, cxtFunc, borderStyle, ...rest }, _mainClass, ..._classes);
|
|
6469
6477
|
|
|
@@ -6474,7 +6482,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6474
6482
|
* @param {function} _func
|
|
6475
6483
|
* @param {*} object (x, y, w, h, siz)
|
|
6476
6484
|
*/
|
|
6477
|
-
const makeMiniKCButton = (_id, _directionFlg, _func, { x =
|
|
6485
|
+
const makeMiniKCButton = (_id, _directionFlg, _func, { x = g_btnX(5 / 6) - 30, y = 15, w = 15, h = 20, siz = g_limitObj.mainSiz } = {}) =>
|
|
6478
6486
|
createCss2Button(`${_id}${_directionFlg}`, g_settingBtnObj.chara[_directionFlg], _func, { x, y, w, h, siz }, g_cssObj.button_Mini);
|
|
6479
6487
|
|
|
6480
6488
|
/**
|
|
@@ -6482,16 +6490,16 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6482
6490
|
* @param {string} _type
|
|
6483
6491
|
* @param {object} obj (baseX)
|
|
6484
6492
|
*/
|
|
6485
|
-
const makeGroupButton = (_type, { baseX =
|
|
6493
|
+
const makeGroupButton = (_type, { baseX = g_btnX(5 / 6) - 20, baseY = 0, cssName } = {}) => {
|
|
6486
6494
|
if (g_headerObj[`${_type}Use`] && g_keycons[`${_type}Groups`].length > 1) {
|
|
6487
6495
|
const typeName = toCapitalize(_type);
|
|
6488
6496
|
multiAppend(divRoot,
|
|
6489
6497
|
makeKCButtonHeader(`lbl${_type}Group`, `${typeName}Group`, { x: baseX - 10, y: baseY }, cssName),
|
|
6490
6498
|
makeKCButton(`lnk${typeName}Group`, ``, _ => setGroup(_type), {
|
|
6491
|
-
x: baseX, y: baseY + 13, w:
|
|
6499
|
+
x: baseX, y: baseY + 13, w: g_btnWidth(1 / 18), title: g_msgObj[`${_type}Group`], cxtFunc: _ => setGroup(_type, -1),
|
|
6492
6500
|
}),
|
|
6493
6501
|
makeMiniKCButton(`lnk${typeName}Group`, `L`, _ => setGroup(_type, -1), { x: baseX - 10, y: baseY + 13 }),
|
|
6494
|
-
makeMiniKCButton(`lnk${typeName}Group`, `R`, _ => setGroup(_type), { x: baseX +
|
|
6502
|
+
makeMiniKCButton(`lnk${typeName}Group`, `R`, _ => setGroup(_type), { x: baseX + g_btnWidth(1 / 18), y: baseY + 13 }),
|
|
6495
6503
|
);
|
|
6496
6504
|
} else {
|
|
6497
6505
|
g_keycons[`${_type}GroupNum`] = 0;
|
|
@@ -6514,30 +6522,30 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6514
6522
|
),
|
|
6515
6523
|
|
|
6516
6524
|
// キーカラータイプ切替ボタン
|
|
6517
|
-
makeKCButtonHeader(`lblcolorType`, `ColorType`, { x: 10 }, g_cssObj.keyconfig_ColorType),
|
|
6525
|
+
makeKCButtonHeader(`lblcolorType`, `ColorType`, { x: 10 + g_btnX() }, g_cssObj.keyconfig_ColorType),
|
|
6518
6526
|
makeKCButton(`lnkColorType`, g_colorType, _ => setColorType(), {
|
|
6519
|
-
x: 20, title: g_msgObj.colorType, cxtFunc: _ => setColorType(-1),
|
|
6527
|
+
x: 20 + g_btnX(), title: g_msgObj.colorType, cxtFunc: _ => setColorType(-1),
|
|
6520
6528
|
}),
|
|
6521
|
-
makeMiniKCButton(`lnkColorType`, `L`, _ => setColorType(-1), { x: 10 }),
|
|
6522
|
-
makeMiniKCButton(`lnkColorType`, `R`, _ => setColorType(), { x: 20 +
|
|
6529
|
+
makeMiniKCButton(`lnkColorType`, `L`, _ => setColorType(-1), { x: 10 + g_btnX() }),
|
|
6530
|
+
makeMiniKCButton(`lnkColorType`, `R`, _ => setColorType(), { x: 20 + g_btnX(1 / 6) }),
|
|
6523
6531
|
);
|
|
6524
6532
|
|
|
6525
6533
|
if (g_headerObj.imgType.length > 1) {
|
|
6526
|
-
const [imgBaseX, imgBaseY] = [20, 50];
|
|
6534
|
+
const [imgBaseX, imgBaseY] = [20 + g_btnX(), 50];
|
|
6527
6535
|
multiAppend(divRoot,
|
|
6528
6536
|
// オブジェクトタイプの切り替え(リロードあり)
|
|
6529
|
-
makeKCButtonHeader(`lblImgType`, `ImgType`, { x: 10, y: 37 }, g_cssObj.keyconfig_ConfigType),
|
|
6537
|
+
makeKCButtonHeader(`lblImgType`, `ImgType`, { x: imgBaseX - 10, y: 37 }, g_cssObj.keyconfig_ConfigType),
|
|
6530
6538
|
makeKCButton(`lnkImgType`, g_imgType, _ => setImgType(), {
|
|
6531
6539
|
x: imgBaseX, y: imgBaseY, title: g_msgObj.imgType, cxtFunc: _ => setImgType(-1),
|
|
6532
6540
|
}),
|
|
6533
6541
|
makeMiniKCButton(`lnkImgType`, `L`, _ => setImgType(-1), { x: imgBaseX - 10, y: imgBaseY }),
|
|
6534
|
-
makeMiniKCButton(`lnkImgType`, `R`, _ => setImgType(), { x: imgBaseX +
|
|
6542
|
+
makeMiniKCButton(`lnkImgType`, `R`, _ => setImgType(), { x: imgBaseX + g_btnWidth(1 / 6), y: imgBaseY }),
|
|
6535
6543
|
);
|
|
6536
6544
|
}
|
|
6537
6545
|
|
|
6538
6546
|
// カラー/シャッフルグループ切替ボタン(カラー/シャッフルパターンが複数ある場合のみ)
|
|
6539
6547
|
makeGroupButton(`color`, { cssName: g_cssObj.keyconfig_ColorType });
|
|
6540
|
-
makeGroupButton(`shuffle`, { baseX:
|
|
6548
|
+
makeGroupButton(`shuffle`, { baseX: g_btnX(11 / 12) - 10, cssName: g_cssObj.settings_Shuffle });
|
|
6541
6549
|
makeGroupButton(`stepRtn`, { baseY: 37, cssName: g_cssObj.settings_Adjustment });
|
|
6542
6550
|
|
|
6543
6551
|
/**
|
|
@@ -6547,7 +6555,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6547
6555
|
const posj = g_keyObj[`pos${keyCtrlPtn}`][g_currentj];
|
|
6548
6556
|
const stdPos = posj - ((posj > divideCnt ? posMax : 0) + divideCnt) / 2;
|
|
6549
6557
|
|
|
6550
|
-
const nextLeft = (kWidth - C_ARW_WIDTH) / 2 + g_keyObj.blank * stdPos
|
|
6558
|
+
const nextLeft = (kWidth - C_ARW_WIDTH) / 2 + g_keyObj.blank * stdPos + addLeft - 10;
|
|
6551
6559
|
cursor.style.left = wUnit(nextLeft);
|
|
6552
6560
|
cursor.style.top = wUnit(C_KYC_HEIGHT * Number(posj > divideCnt) + 57 + C_KYC_REPHEIGHT * g_currentk);
|
|
6553
6561
|
g_kcType = (g_currentk === 0 ? `Main` : `Replaced`);
|
|
@@ -6583,7 +6591,6 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6583
6591
|
}
|
|
6584
6592
|
|
|
6585
6593
|
setKeyConfigCursor();
|
|
6586
|
-
keyconSprite.scrollLeft = - maxLeftX;
|
|
6587
6594
|
};
|
|
6588
6595
|
|
|
6589
6596
|
const getNextNum = (_scrollNum, _groupName, _target) =>
|
|
@@ -6876,7 +6883,6 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6876
6883
|
}
|
|
6877
6884
|
}
|
|
6878
6885
|
changeConfigCursor(0);
|
|
6879
|
-
keyconSprite.scrollLeft = - maxLeftX;
|
|
6880
6886
|
}
|
|
6881
6887
|
}, g_lblPosObj.btnKcReset, g_cssObj.button_Reset),
|
|
6882
6888
|
|
|
@@ -7641,7 +7647,8 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7641
7647
|
const colorCd = tmpColorData[k + 2];
|
|
7642
7648
|
|
|
7643
7649
|
// フレーム数、色番号、カラーコード、全体色変化フラグをセットとして配列化
|
|
7644
|
-
|
|
7650
|
+
// フリーズアローヒット時の個別色変化は互換のため全体色変化として扱う
|
|
7651
|
+
colorData.push([frame, colorNum, colorCd, isFrzHitColor(colorNum) && !allFlg ? true : allFlg]);
|
|
7645
7652
|
}
|
|
7646
7653
|
});
|
|
7647
7654
|
return colorData.sort((_a, _b) => _a[0] - _b[0]);
|
|
@@ -7649,6 +7656,74 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7649
7656
|
return [];
|
|
7650
7657
|
};
|
|
7651
7658
|
|
|
7659
|
+
/**
|
|
7660
|
+
* 色変化データの分解・格納(新形式)
|
|
7661
|
+
* - 個別・全体色変化を一体で管理するため通常の配列で返却
|
|
7662
|
+
* @param {string} _header
|
|
7663
|
+
* @param {number} _scoreNo
|
|
7664
|
+
* @returns
|
|
7665
|
+
*/
|
|
7666
|
+
const setColor2Data = (_header, _scoreNo) => {
|
|
7667
|
+
const dosColorData = getRefData(_header, `${_scoreNo}_data`);
|
|
7668
|
+
const colorData = {
|
|
7669
|
+
Arrow: [], ArrowShadow: [], Normal: [], NormalBar: [], NormalShadow: [],
|
|
7670
|
+
Hit: [], HitBar: [], HitShadow: [],
|
|
7671
|
+
};
|
|
7672
|
+
|
|
7673
|
+
if (hasVal(dosColorData) && g_stateObj.d_color === C_FLG_ON) {
|
|
7674
|
+
|
|
7675
|
+
splitLF(dosColorData).filter(data => hasVal(data)).forEach(tmpData => {
|
|
7676
|
+
const tmpColorData = tmpData.split(`,`).map(val => trimStr(val));
|
|
7677
|
+
if (!hasVal(tmpColorData[0]) || tmpColorData[1] === `-`) {
|
|
7678
|
+
return;
|
|
7679
|
+
}
|
|
7680
|
+
const frame = calcFrame(setVal(tmpColorData[0], ``, C_TYP_CALC));
|
|
7681
|
+
const colorCd = tmpColorData[2];
|
|
7682
|
+
|
|
7683
|
+
// 色変化対象の取得
|
|
7684
|
+
const pos = tmpColorData[1]?.indexOf(`:`);
|
|
7685
|
+
const patternStr = pos > 0 ? [trimStr(tmpColorData[1].substring(0, pos)), trimStr(tmpColorData[1].substring(pos + 1))]
|
|
7686
|
+
: [tmpColorData[1]];
|
|
7687
|
+
const patterns = replaceStr(trimStr(patternStr[1]), g_escapeStr.colorPatternName)?.split(`/`) || [`Arrow`];
|
|
7688
|
+
|
|
7689
|
+
// 矢印番号の組み立て
|
|
7690
|
+
const colorVals = [];
|
|
7691
|
+
replaceStr(patternStr[0], g_escapeStr.targetPatternName)?.split(`/`)?.forEach(val => {
|
|
7692
|
+
if (val.startsWith('g')) {
|
|
7693
|
+
// g付きの場合は矢印グループから対象の矢印番号を検索
|
|
7694
|
+
const groupVal = setIntVal(val.slice(1));
|
|
7695
|
+
for (let j = 0; j < keyNum; j++) {
|
|
7696
|
+
if (g_keyObj[`color${_keyCtrlPtn}`][j] === groupVal) {
|
|
7697
|
+
colorVals.push(j);
|
|
7698
|
+
}
|
|
7699
|
+
}
|
|
7700
|
+
} else if (val.indexOf(`...`) > 0) {
|
|
7701
|
+
// 範囲指定表記の補完 例. 0...3 -> 0/1/2/3
|
|
7702
|
+
const [valMin, valMax] = [val.split(`...`)[0], val.split(`...`)[1]].map(val => setIntVal(val));
|
|
7703
|
+
for (let k = valMin; k <= valMax; k++) {
|
|
7704
|
+
colorVals.push(setIntVal(k));
|
|
7705
|
+
}
|
|
7706
|
+
} else {
|
|
7707
|
+
colorVals.push(setIntVal(val));
|
|
7708
|
+
}
|
|
7709
|
+
});
|
|
7710
|
+
|
|
7711
|
+
// フレーム数、色番号、カラーコード、全体色変化フラグ、変更対象をセットとして配列化し、色変化対象ごとのプロパティへ追加
|
|
7712
|
+
patterns.forEach(pattern => {
|
|
7713
|
+
try {
|
|
7714
|
+
colorVals.forEach(val => colorData[pattern].push([frame, val, colorCd, hasVal(tmpColorData[3]), pattern]));
|
|
7715
|
+
} catch (error) {
|
|
7716
|
+
makeWarningWindow(g_msgInfoObj.E_0201.split(`{0}`).join(pattern));
|
|
7717
|
+
}
|
|
7718
|
+
});
|
|
7719
|
+
});
|
|
7720
|
+
// 色変化対象ごとにフレーム数をキーにソートしてフラット化
|
|
7721
|
+
Object.keys(colorData).forEach(pattern =>
|
|
7722
|
+
colorData[pattern] = colorData[pattern].sort((_a, _b) => _a[0] - _b[0]).flat());
|
|
7723
|
+
}
|
|
7724
|
+
return colorData;
|
|
7725
|
+
};
|
|
7726
|
+
|
|
7652
7727
|
/**
|
|
7653
7728
|
* 矢印モーションデータの分解・格納(フレーム数, 矢印番号)
|
|
7654
7729
|
* @param {string} _header
|
|
@@ -7802,7 +7877,7 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7802
7877
|
}
|
|
7803
7878
|
|
|
7804
7879
|
tmpArrayData.filter(data => hasVal(data)).forEach(tmpData => {
|
|
7805
|
-
const tmpWordData = tmpData.split(`,`);
|
|
7880
|
+
const tmpWordData = tmpData.split(`,`).map(val => trimStr(val));
|
|
7806
7881
|
for (let k = 0; k < tmpWordData.length; k += 3) {
|
|
7807
7882
|
if (!hasVal(tmpWordData[k])) {
|
|
7808
7883
|
continue;
|
|
@@ -7881,6 +7956,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7881
7956
|
obj[`${sprite}DummyData`] = setColorData(sprite, _dummyNo);
|
|
7882
7957
|
}
|
|
7883
7958
|
});
|
|
7959
|
+
// 色変化(新形式)の分解(3~4つで1セット, セット毎の改行区切り)
|
|
7960
|
+
obj.ncolorData = setColor2Data(`ncolor`, scoreIdHeader);
|
|
7961
|
+
if (g_stateObj.dummyId !== ``) {
|
|
7962
|
+
obj.ncolorDummyData = setColor2Data(`ncolor`, _dummyNo);
|
|
7963
|
+
}
|
|
7884
7964
|
|
|
7885
7965
|
if (_scoreAnalyzeFlg) {
|
|
7886
7966
|
return obj;
|
|
@@ -8263,17 +8343,17 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
8263
8343
|
* @param {object} obj _colorFlg: 個別色変化フラグ, _calcFrameFlg: 逆算を無条件で行うかどうかの可否
|
|
8264
8344
|
*/
|
|
8265
8345
|
const calcDataTiming = (_type, _header, _setFunc = _ => true,
|
|
8266
|
-
{ _term = 4, _colorFlg = false, _calcFrameFlg = false } = {}) => {
|
|
8346
|
+
{ _term = 4, _colorFlg = false, _calcFrameFlg = false, _propName = `` } = {}) => {
|
|
8267
8347
|
|
|
8268
8348
|
const camelHeader = _header === `` ? _type : `${_header}${toCapitalize(_type)}`;
|
|
8269
|
-
const baseData = _dataObj[`${camelHeader}Data`];
|
|
8349
|
+
const baseData = hasVal(_propName) ? _dataObj[`${camelHeader}Data`][_propName] : _dataObj[`${camelHeader}Data`];
|
|
8270
8350
|
|
|
8271
8351
|
if (!hasArrayList(baseData, _term)) {
|
|
8272
8352
|
return;
|
|
8273
8353
|
}
|
|
8274
8354
|
const frontData = [];
|
|
8275
8355
|
for (let k = baseData.length - _term; k >= 0; k -= _term) {
|
|
8276
|
-
const calcFrameFlg = (_colorFlg && !
|
|
8356
|
+
const calcFrameFlg = (_colorFlg && !baseData[k + 3]) || _calcFrameFlg;
|
|
8277
8357
|
|
|
8278
8358
|
if (baseData[k] < g_scoreObj.frameNum) {
|
|
8279
8359
|
// フェードイン直前にある色変化・モーションデータ・スクロール反転データを取得して格納
|
|
@@ -8362,7 +8442,13 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
8362
8442
|
};
|
|
8363
8443
|
|
|
8364
8444
|
// 個別・全体色変化、モーションデータ・スクロール反転データのタイミング更新
|
|
8365
|
-
[``, `dummy`].forEach(type =>
|
|
8445
|
+
[``, `dummy`].forEach(type => {
|
|
8446
|
+
calcDataTiming(`color`, type, pushColors, { _colorFlg: true });
|
|
8447
|
+
if (_dataObj[`ncolor${type}Data`] !== undefined) {
|
|
8448
|
+
Object.keys(_dataObj[`ncolor${type}Data`]).forEach(pattern =>
|
|
8449
|
+
calcDataTiming(`ncolor`, type, pushColors, { _term: 5, _colorFlg: true, _propName: pattern }));
|
|
8450
|
+
}
|
|
8451
|
+
});
|
|
8366
8452
|
|
|
8367
8453
|
g_typeLists.arrow.forEach(header =>
|
|
8368
8454
|
calcDataTiming(`cssMotion`, header, pushCssMotions, { _calcFrameFlg: true }));
|
|
@@ -8463,7 +8549,7 @@ const convertReplaceNums = _ => {
|
|
|
8463
8549
|
* @param {string} _colorCd
|
|
8464
8550
|
* @param {string} _allFlg
|
|
8465
8551
|
*/
|
|
8466
|
-
const pushColors = (_header, _frame, _val, _colorCd, _allFlg) => {
|
|
8552
|
+
const pushColors = (_header, _frame, _val, _colorCd, _allFlg, _pattern = ``) => {
|
|
8467
8553
|
|
|
8468
8554
|
const tkObj = getKeyInfo();
|
|
8469
8555
|
const grdFlg = (g_colorType === `Type0` ? !g_headerObj.defaultColorgrd[0] : g_headerObj.defaultColorgrd[0]);
|
|
@@ -8491,62 +8577,93 @@ const pushColors = (_header, _frame, _val, _colorCd, _allFlg) => {
|
|
|
8491
8577
|
g_workObj[`${_baseStr}Cd`][_frame]?.push(colorCd) || (g_workObj[`${_baseStr}Cd`][_frame] = [colorCd]);
|
|
8492
8578
|
};
|
|
8493
8579
|
|
|
8494
|
-
|
|
8495
|
-
|
|
8496
|
-
|
|
8497
|
-
|
|
8498
|
-
|
|
8499
|
-
|
|
8500
|
-
baseHeaders.push(`mk${_header}
|
|
8501
|
-
|
|
8580
|
+
/**
|
|
8581
|
+
* 色変化データ(ncolor_data)の格納処理
|
|
8582
|
+
*/
|
|
8583
|
+
const executePushColors = () => {
|
|
8584
|
+
const baseHeaders = [];
|
|
8585
|
+
if (_pattern.startsWith(`Arrow`)) {
|
|
8586
|
+
baseHeaders.push(`mk${_header}Color${_pattern.slice('Arrow'.length)}`);
|
|
8587
|
+
allUseTypes.push(`Arrow`);
|
|
8588
|
+
|
|
8589
|
+
// フリーズアロー色の追随設定がある場合、対象を追加
|
|
8590
|
+
if (_pattern === `Arrow`) {
|
|
8591
|
+
g_headerObj.frzScopeFromArrowColors.forEach(type =>
|
|
8592
|
+
baseHeaders.push(`mk${_header}FColor${type}`, `mk${_header}FColor${type}Bar`));
|
|
8593
|
+
if (g_headerObj.frzScopeFromArrowColors.length > 0) {
|
|
8594
|
+
allUseTypes.push(`Frz`);
|
|
8595
|
+
}
|
|
8596
|
+
}
|
|
8597
|
+
} else {
|
|
8598
|
+
baseHeaders.push(`mk${_header}FColor${_pattern}`);
|
|
8502
8599
|
allUseTypes.push(`Frz`);
|
|
8503
8600
|
}
|
|
8601
|
+
// 色変化情報の格納
|
|
8602
|
+
baseHeaders.forEach(baseHeader => pushColor(baseHeader, g_workObj.replaceNums[_val] + addAll));
|
|
8603
|
+
};
|
|
8504
8604
|
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8605
|
+
/**
|
|
8606
|
+
* 従来の色変化データ派生(color_data, acolor_data)の格納処理
|
|
8607
|
+
*/
|
|
8608
|
+
const executePushColorsOld = () => {
|
|
8609
|
+
|
|
8610
|
+
if (_val < 30 || _val >= 1000) {
|
|
8611
|
+
const baseHeaders = [`mk${_header}Color`];
|
|
8612
|
+
allUseTypes.push(`Arrow`);
|
|
8613
|
+
|
|
8614
|
+
// フリーズアロー色の追随設定がある場合、対象を追加
|
|
8615
|
+
g_headerObj.frzScopeFromArrowColors.forEach(type =>
|
|
8616
|
+
baseHeaders.push(`mk${_header}FColor${type}`, `mk${_header}FColor${type}Bar`));
|
|
8617
|
+
if (g_headerObj.frzScopeFromArrowColors.length > 0) {
|
|
8618
|
+
allUseTypes.push(`Frz`);
|
|
8619
|
+
}
|
|
8620
|
+
|
|
8621
|
+
// 矢印の色変化 (追随指定時はフリーズアローも色変化)
|
|
8622
|
+
baseHeaders.forEach(baseHeader => {
|
|
8623
|
+
if (_val < 20 || _val >= 1000) {
|
|
8624
|
+
pushColor(baseHeader, g_workObj.replaceNums[_val % 1000] + addAll);
|
|
8625
|
+
} else if (_val >= 20) {
|
|
8626
|
+
const colorNum = _val - 20;
|
|
8627
|
+
for (let j = 0; j < tkObj.keyNum; j++) {
|
|
8628
|
+
if (g_keyObj[`color${tkObj.keyCtrlPtn}`][j] === colorNum) {
|
|
8629
|
+
pushColor(baseHeader, j + addAll);
|
|
8630
|
+
}
|
|
8514
8631
|
}
|
|
8515
8632
|
}
|
|
8516
|
-
}
|
|
8517
|
-
});
|
|
8633
|
+
});
|
|
8518
8634
|
|
|
8519
|
-
} else {
|
|
8520
|
-
const baseHeader = `mk${_header}FColor`;
|
|
8521
|
-
allUseTypes.push(`Frz`);
|
|
8522
|
-
|
|
8523
|
-
// フリーズアローの色変化
|
|
8524
|
-
const tmpVals = [];
|
|
8525
|
-
if (_val < 50) {
|
|
8526
|
-
tmpVals.push(_val % 30);
|
|
8527
|
-
} else if (_val < 60) {
|
|
8528
|
-
tmpVals.push((_val % 50) * 2, (_val % 50) * 2 + 1);
|
|
8529
8635
|
} else {
|
|
8530
|
-
|
|
8531
|
-
|
|
8636
|
+
const baseHeader = `mk${_header}FColor`;
|
|
8637
|
+
allUseTypes.push(`Frz`);
|
|
8638
|
+
|
|
8639
|
+
// フリーズアローの色変化
|
|
8640
|
+
const tmpVals = [];
|
|
8641
|
+
if (_val < 50) {
|
|
8642
|
+
tmpVals.push(_val % 30);
|
|
8643
|
+
} else if (_val < 60) {
|
|
8644
|
+
tmpVals.push((_val % 50) * 2, (_val % 50) * 2 + 1);
|
|
8532
8645
|
} else {
|
|
8533
|
-
|
|
8646
|
+
if (_val === 60) {
|
|
8647
|
+
tmpVals.push(...Array(8).keys());
|
|
8648
|
+
} else {
|
|
8649
|
+
tmpVals.push(...[...Array(8).keys()].map(j => j + 10));
|
|
8650
|
+
}
|
|
8534
8651
|
}
|
|
8535
|
-
|
|
8536
|
-
tmpVals.forEach(targetj => {
|
|
8652
|
+
tmpVals.forEach(targetj => {
|
|
8537
8653
|
|
|
8538
|
-
|
|
8539
|
-
|
|
8540
|
-
|
|
8654
|
+
// targetj=0,2,4,6,8 ⇒ Arrow, 1,3,5,7,9 ⇒ Bar
|
|
8655
|
+
const ctype = (targetj >= 10 ? `Hit` : `Normal`) + (targetj % 2 === 0 ? `` : `Bar`);
|
|
8656
|
+
const colorPos = Math.ceil((targetj % 10 - 1) / 2);
|
|
8541
8657
|
|
|
8542
|
-
|
|
8543
|
-
|
|
8544
|
-
|
|
8545
|
-
|
|
8658
|
+
g_keyObj[`color${tkObj.keyCtrlPtn}`].forEach((cpattern, k) => {
|
|
8659
|
+
if (colorPos === cpattern) {
|
|
8660
|
+
pushColor(baseHeader + ctype, k + addAll);
|
|
8661
|
+
}
|
|
8662
|
+
});
|
|
8546
8663
|
});
|
|
8547
|
-
}
|
|
8548
|
-
}
|
|
8549
|
-
|
|
8664
|
+
}
|
|
8665
|
+
};
|
|
8666
|
+
hasVal(_pattern) ? executePushColors() : executePushColorsOld();
|
|
8550
8667
|
enabledAll(...allUseTypes);
|
|
8551
8668
|
};
|
|
8552
8669
|
|
|
@@ -8661,13 +8778,11 @@ const getArrowSettings = _ => {
|
|
|
8661
8778
|
g_workObj.judgFrzHitCnt = [...Array(keyNum)].fill(1);
|
|
8662
8779
|
g_judgObj.lockFlgs = [...Array(keyNum)].fill(false);
|
|
8663
8780
|
|
|
8664
|
-
// TODO: この部分を矢印塗りつぶし部分についても適用できるように変数を作成
|
|
8665
|
-
|
|
8666
8781
|
// 矢印色管理 (個別・全体)
|
|
8667
8782
|
const eachOrAll = [``, `All`];
|
|
8668
8783
|
eachOrAll.forEach(type => {
|
|
8669
|
-
|
|
8670
|
-
|
|
8784
|
+
[`arrow`, `dummyArrow`].forEach(arrowType =>
|
|
8785
|
+
g_typeLists.arrowColor.forEach(objType => g_workObj[`${arrowType}${objType}Colors${type}`] = []));
|
|
8671
8786
|
|
|
8672
8787
|
[`frz`, `dummyFrz`].forEach(arrowType =>
|
|
8673
8788
|
g_typeLists.frzColor.forEach(frzType => g_workObj[`${arrowType}${frzType}Colors${type}`] = []));
|
|
@@ -8692,16 +8807,18 @@ const getArrowSettings = _ => {
|
|
|
8692
8807
|
g_workObj.dividePos[j] = ((posj <= divideCnt ? 0 : 1) + (scrollDirOptions[j] === 1 ? 0 : 1) + (g_stateObj.reverse === C_FLG_OFF ? 0 : 1)) % 2;
|
|
8693
8808
|
g_workObj.scrollDir[j] = (posj <= divideCnt ? 1 : -1) * scrollDirOptions[j] * (g_stateObj.reverse === C_FLG_OFF ? 1 : -1);
|
|
8694
8809
|
|
|
8695
|
-
// TODO: この部分を矢印塗りつぶし部分についても適用できるように変数を作成
|
|
8696
|
-
|
|
8697
8810
|
eachOrAll.forEach(type => {
|
|
8698
8811
|
g_workObj[`arrowColors${type}`][j] = g_headerObj.setColor[colorj];
|
|
8699
8812
|
g_workObj[`dummyArrowColors${type}`][j] = g_headerObj.setDummyColor[colorj];
|
|
8813
|
+
g_workObj[`arrowShadowColors${type}`][j] = g_headerObj.setShadowColor[colorj] || ``;
|
|
8814
|
+
g_workObj[`dummyArrowShadowColors${type}`][j] = g_headerObj.setDummyColor[colorj] || ``;
|
|
8700
8815
|
|
|
8701
8816
|
g_typeLists.frzColor.forEach((frzType, k) => {
|
|
8702
|
-
g_workObj[`frz${frzType}Colors${type}`][j] = g_headerObj.frzColor[colorj][k]
|
|
8817
|
+
g_workObj[`frz${frzType}Colors${type}`][j] = g_headerObj.frzColor[colorj][k] || ``;
|
|
8703
8818
|
g_workObj[`dummyFrz${frzType}Colors${type}`][j] = g_headerObj.setDummyColor[colorj];
|
|
8704
8819
|
});
|
|
8820
|
+
g_workObj[`frzNormalShadowColors${type}`][j] = g_headerObj.frzShadowColor[colorj][0] || ``;
|
|
8821
|
+
g_workObj[`frzHitShadowColors${type}`][j] = g_headerObj.frzShadowColor[colorj][1] || ``;
|
|
8705
8822
|
});
|
|
8706
8823
|
}
|
|
8707
8824
|
g_workObj.scrollDirDefault = g_workObj.scrollDir.concat();
|
|
@@ -9342,13 +9459,30 @@ const mainInit = _ => {
|
|
|
9342
9459
|
*/
|
|
9343
9460
|
const changeArrowColor = (_j, _k, _name) => {
|
|
9344
9461
|
if (g_workObj[`mk${toCapitalize(_name)}ColorChangeAll`][g_scoreObj.frameNum]) {
|
|
9345
|
-
|
|
9346
|
-
|
|
9462
|
+
|
|
9463
|
+
/**
|
|
9464
|
+
* 全体色の変更処理
|
|
9465
|
+
* - 次の全体色変化対象の色と比較して一致した場合に色を変更
|
|
9466
|
+
* @param {string} _type
|
|
9467
|
+
* @param {element} _baseObj
|
|
9468
|
+
*/
|
|
9469
|
+
const changeColor = (_type, _baseObj) => {
|
|
9470
|
+
const cArrowColor = g_workObj[`${_name}${_type}Colors`][_j];
|
|
9471
|
+
const cArrowColorAll = g_workObj[`${_name}${_type}ColorsAll`][_j];
|
|
9472
|
+
if (_baseObj.getAttribute(`color`) !== cArrowColor && cArrowColorAll === cArrowColor) {
|
|
9473
|
+
_baseObj.style.background = cArrowColorAll;
|
|
9474
|
+
_baseObj.setAttribute(`color`, cArrowColorAll);
|
|
9475
|
+
}
|
|
9476
|
+
};
|
|
9477
|
+
|
|
9478
|
+
// 矢印枠の色変化
|
|
9347
9479
|
const arrowTop = document.getElementById(`${_name}Top${_j}_${_k}`);
|
|
9480
|
+
changeColor(``, arrowTop);
|
|
9348
9481
|
|
|
9349
|
-
|
|
9350
|
-
|
|
9351
|
-
|
|
9482
|
+
// 矢印塗りつぶし部分の色変化
|
|
9483
|
+
if (g_headerObj.setShadowColor[0] !== ``) {
|
|
9484
|
+
const arrowShadow = document.getElementById(`${_name}Shadow${_j}_${_k}`);
|
|
9485
|
+
changeColor(`Shadow`, arrowShadow);
|
|
9352
9486
|
}
|
|
9353
9487
|
}
|
|
9354
9488
|
};
|
|
@@ -9363,30 +9497,39 @@ const mainInit = _ => {
|
|
|
9363
9497
|
const changeFrzColor = (_j, _k, _name, _state) => {
|
|
9364
9498
|
|
|
9365
9499
|
if (g_workObj[`mk${toCapitalize(_name)}ColorChangeAll`][g_scoreObj.frameNum]) {
|
|
9366
|
-
const
|
|
9367
|
-
const
|
|
9368
|
-
const
|
|
9369
|
-
const
|
|
9500
|
+
const frzNo = `${_j}_${_k}`;
|
|
9501
|
+
const frzTop = document.getElementById(`${_name}Top${frzNo}`);
|
|
9502
|
+
const frzBar = document.getElementById(`${_name}Bar${frzNo}`);
|
|
9503
|
+
const frzBtm = document.getElementById(`${_name}Btm${frzNo}`);
|
|
9504
|
+
const frzTopShadow = document.getElementById(`${_name}TopShadow${frzNo}`);
|
|
9505
|
+
const frzBtmShadow = document.getElementById(`${_name}BtmShadow${frzNo}`);
|
|
9370
9506
|
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9375
|
-
|
|
9376
|
-
|
|
9507
|
+
/**
|
|
9508
|
+
* 全体色の変更処理
|
|
9509
|
+
* @param {string} _type
|
|
9510
|
+
* @param {element} _baseObj
|
|
9511
|
+
* @param {element} _baseObj2
|
|
9512
|
+
*/
|
|
9513
|
+
const changeColor = (_type, _baseObj, _baseObj2) => {
|
|
9514
|
+
const cFrzColor = g_workObj[`${_name}${_state}${_type}Colors`][_j];
|
|
9515
|
+
const cFrzColorAll = g_workObj[`${_name}${_state}${_type}ColorsAll`][_j];
|
|
9516
|
+
if (_baseObj.getAttribute(`color${_state}`) !== cFrzColor && cFrzColorAll === cFrzColor) {
|
|
9517
|
+
if (_baseObj2 && _state === `Normal`) {
|
|
9518
|
+
_baseObj2.style.background = cFrzColorAll;
|
|
9377
9519
|
}
|
|
9378
|
-
|
|
9379
|
-
|
|
9520
|
+
_baseObj.style.background = cFrzColorAll;
|
|
9521
|
+
_baseObj.setAttribute(`color${_state}`, cFrzColorAll);
|
|
9380
9522
|
}
|
|
9381
|
-
}
|
|
9523
|
+
};
|
|
9524
|
+
|
|
9525
|
+
// 矢印部分の色変化
|
|
9526
|
+
changeColor(``, frzBtm, frzTop);
|
|
9527
|
+
|
|
9382
9528
|
// 帯部分の色変化
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
frzBar.setAttribute(`color`, toBarColorCode);
|
|
9388
|
-
}
|
|
9389
|
-
}
|
|
9529
|
+
changeColor(`Bar`, frzBar);
|
|
9530
|
+
|
|
9531
|
+
// 矢印塗りつぶし部分の色変化
|
|
9532
|
+
changeColor(`Shadow`, frzBtmShadow, frzTopShadow);
|
|
9390
9533
|
}
|
|
9391
9534
|
};
|
|
9392
9535
|
|
|
@@ -9610,8 +9753,9 @@ const mainInit = _ => {
|
|
|
9610
9753
|
* @param {number} _arrowCnt 現在の判定矢印順
|
|
9611
9754
|
* @param {string} _name 矢印名
|
|
9612
9755
|
* @param {string} _color 矢印色
|
|
9756
|
+
* @param {string} _shadowColor 矢印塗りつぶし部分の色
|
|
9613
9757
|
*/
|
|
9614
|
-
const makeArrow = (_j, _arrowCnt, _name, _color) => {
|
|
9758
|
+
const makeArrow = (_j, _arrowCnt, _name, _color, _shadowColor) => {
|
|
9615
9759
|
const dividePos = g_workObj.dividePos[_j];
|
|
9616
9760
|
const colorPos = g_keyObj[`color${keyCtrlPtn}`][_j];
|
|
9617
9761
|
|
|
@@ -9630,6 +9774,7 @@ const mainInit = _ => {
|
|
|
9630
9774
|
dir: g_workObj.scrollDir[_j], boostDir: g_workObj.boostDir,
|
|
9631
9775
|
prevY: firstPosY, y: firstPosY,
|
|
9632
9776
|
};
|
|
9777
|
+
g_typeLists.arrowColor.forEach(val => g_attrObj[arrowName][`Arrow${val}`] = g_workObj[`${_name}${val}Colors`][_j]);
|
|
9633
9778
|
arrowSprite[dividePos].appendChild(stepRoot);
|
|
9634
9779
|
|
|
9635
9780
|
if (g_workObj[`${_name}CssMotions`][_j] !== ``) {
|
|
@@ -9644,9 +9789,10 @@ const mainInit = _ => {
|
|
|
9644
9789
|
if (g_headerObj.setShadowColor[colorPos] !== ``) {
|
|
9645
9790
|
// 矢印の塗り部分
|
|
9646
9791
|
const arrShadow = createColorObject2(`${_name}Shadow${_j}_${_arrowCnt}`, {
|
|
9647
|
-
background:
|
|
9792
|
+
background: _shadowColor === `Default` ? _color : _shadowColor,
|
|
9793
|
+
rotate: g_workObj.arrowRtn[_j], styleName: `Shadow`,
|
|
9648
9794
|
});
|
|
9649
|
-
if (
|
|
9795
|
+
if (_shadowColor === `Default`) {
|
|
9650
9796
|
arrShadow.style.opacity = 0.5;
|
|
9651
9797
|
}
|
|
9652
9798
|
stepRoot.appendChild(arrShadow);
|
|
@@ -9690,8 +9836,9 @@ const mainInit = _ => {
|
|
|
9690
9836
|
* @param {string} _name
|
|
9691
9837
|
* @param {string} _normalColor
|
|
9692
9838
|
* @param {string} _barColor
|
|
9839
|
+
* @param {string} _shadowColor
|
|
9693
9840
|
*/
|
|
9694
|
-
const makeFrzArrow = (_j, _arrowCnt, _name, _normalColor, _barColor) => {
|
|
9841
|
+
const makeFrzArrow = (_j, _arrowCnt, _name, _normalColor, _barColor, _shadowColor) => {
|
|
9695
9842
|
const dividePos = g_workObj.dividePos[_j];
|
|
9696
9843
|
const frzNo = `${_j}_${_arrowCnt}`;
|
|
9697
9844
|
const frzName = `${_name}${frzNo}`;
|
|
@@ -9710,19 +9857,15 @@ const mainInit = _ => {
|
|
|
9710
9857
|
boostSpd: g_workObj.boostSpd, dividePos: dividePos, dir: g_workObj.scrollDir[_j], boostDir: g_workObj.boostDir,
|
|
9711
9858
|
y: firstPosY, barY: C_ARW_WIDTH / 2 - firstBarLength * dividePos, btmY: firstBarLength * g_workObj.scrollDir[_j],
|
|
9712
9859
|
};
|
|
9860
|
+
g_typeLists.frzColor.forEach(val => g_attrObj[frzName][val] = g_workObj[`${_name}${val}Colors`][_j]);
|
|
9861
|
+
|
|
9713
9862
|
arrowSprite[dividePos].appendChild(frzRoot);
|
|
9714
9863
|
|
|
9715
9864
|
if (g_workObj[`${_name}CssMotions`][_j] !== ``) {
|
|
9716
9865
|
frzRoot.classList.add(g_workObj[`${_name}CssMotions`][_j]);
|
|
9717
9866
|
frzRoot.style.animationDuration = `${g_workObj.arrivalFrame[g_scoreObj.frameNum] / g_fps}s`;
|
|
9718
9867
|
}
|
|
9719
|
-
|
|
9720
|
-
const colorPos = g_keyObj[`color${keyCtrlPtn}`][_j];
|
|
9721
|
-
let shadowColor = ``;
|
|
9722
|
-
if (g_headerObj.frzShadowColor[colorPos][0] !== ``) {
|
|
9723
|
-
shadowColor = (g_headerObj.frzShadowColor[colorPos][0] === `Default` ?
|
|
9724
|
-
_normalColor : g_headerObj.frzShadowColor[colorPos][0]);
|
|
9725
|
-
}
|
|
9868
|
+
let shadowColor = _shadowColor === `Default` ? _normalColor : _shadowColor;
|
|
9726
9869
|
|
|
9727
9870
|
// フリーズアローは、下記の順で作成する。
|
|
9728
9871
|
// 後に作成するほど前面に表示される。
|
|
@@ -9886,8 +10029,9 @@ const mainInit = _ => {
|
|
|
9886
10029
|
const headerU = toCapitalize(header);
|
|
9887
10030
|
|
|
9888
10031
|
// 個別・全体色変化 (矢印)
|
|
9889
|
-
|
|
9890
|
-
g_workObj[`mk${headerU}
|
|
10032
|
+
g_typeLists.arrowColor.forEach(ctype =>
|
|
10033
|
+
changeColors(g_workObj[`mk${headerU}Color${ctype}`][currentFrame],
|
|
10034
|
+
g_workObj[`mk${headerU}Color${ctype}Cd`][currentFrame], header, `arrow${ctype}`));
|
|
9891
10035
|
|
|
9892
10036
|
// 個別・全体色変化(フリーズアロー)
|
|
9893
10037
|
g_typeLists.frzColor.forEach(ctype =>
|
|
@@ -9916,19 +10060,21 @@ const mainInit = _ => {
|
|
|
9916
10060
|
|
|
9917
10061
|
// ダミー矢印生成(背面に表示するため先に処理)
|
|
9918
10062
|
g_workObj.mkDummyArrow[currentFrame]?.forEach(data =>
|
|
9919
|
-
makeArrow(data, ++dummyArrowCnts[data], `dummyArrow`, g_workObj.dummyArrowColors[data]));
|
|
10063
|
+
makeArrow(data, ++dummyArrowCnts[data], `dummyArrow`, g_workObj.dummyArrowColors[data], g_workObj.dummyArrowShadowColors[data]));
|
|
9920
10064
|
|
|
9921
10065
|
// 矢印生成
|
|
9922
10066
|
g_workObj.mkArrow[currentFrame]?.forEach(data =>
|
|
9923
|
-
makeArrow(data, ++arrowCnts[data], `arrow`, g_workObj.arrowColors[data]));
|
|
10067
|
+
makeArrow(data, ++arrowCnts[data], `arrow`, g_workObj.arrowColors[data], g_workObj.arrowShadowColors[data]));
|
|
9924
10068
|
|
|
9925
10069
|
// ダミーフリーズアロー生成
|
|
9926
10070
|
g_workObj.mkDummyFrzArrow[currentFrame]?.forEach(data =>
|
|
9927
|
-
makeFrzArrow(data, ++dummyFrzCnts[data], `dummyFrz`, g_workObj.dummyFrzNormalColors[data],
|
|
10071
|
+
makeFrzArrow(data, ++dummyFrzCnts[data], `dummyFrz`, g_workObj.dummyFrzNormalColors[data],
|
|
10072
|
+
_workObj.dummyFrzNormalBarColors[data], g_workObj.dummyFrzNormalShadowColors[data]));
|
|
9928
10073
|
|
|
9929
10074
|
// フリーズアロー生成
|
|
9930
10075
|
g_workObj.mkFrzArrow[currentFrame]?.forEach(data =>
|
|
9931
|
-
makeFrzArrow(data, ++frzCnts[data], `frz`, g_workObj.frzNormalColors[data],
|
|
10076
|
+
makeFrzArrow(data, ++frzCnts[data], `frz`, g_workObj.frzNormalColors[data],
|
|
10077
|
+
g_workObj.frzNormalBarColors[data], g_workObj.frzNormalShadowColors[data]));
|
|
9932
10078
|
|
|
9933
10079
|
// 矢印・フリーズアロー移動&消去
|
|
9934
10080
|
for (let j = 0; j < keyNum; j++) {
|
|
@@ -10148,8 +10294,6 @@ const appearKeyTypes = (_j, _target) => {
|
|
|
10148
10294
|
}
|
|
10149
10295
|
};
|
|
10150
10296
|
|
|
10151
|
-
// TODO: この部分を矢印塗りつぶし部分についても適用できるように関数を見直し
|
|
10152
|
-
|
|
10153
10297
|
/**
|
|
10154
10298
|
* 個別・全体色変化
|
|
10155
10299
|
* @param {array} _mkColor
|
|
@@ -10230,7 +10374,6 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
10230
10374
|
const styfrzBtm = $id(`${_name}Btm${frzNo}`);
|
|
10231
10375
|
const styfrzTopShadow = $id(`${_name}TopShadow${frzNo}`);
|
|
10232
10376
|
const styfrzBtmShadow = $id(`${_name}BtmShadow${frzNo}`);
|
|
10233
|
-
const colorPos = g_keyObj[`color${g_keyObj.currentKey}_${g_keyObj.currentPtn}`][_j];
|
|
10234
10377
|
|
|
10235
10378
|
// フリーズアロー位置の修正(ステップゾーン上に来るように)
|
|
10236
10379
|
const delFrzLength = parseFloat($id(`stepRoot${_j}`).top) - currentFrz.y;
|
|
@@ -10256,10 +10399,8 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
10256
10399
|
styfrzTopShadow.opacity = 0;
|
|
10257
10400
|
styfrzBtmShadow.top = styfrzBtm.top;
|
|
10258
10401
|
if (_name === `frz`) {
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
g_workObj.frzHitColors[_j] : g_headerObj.frzShadowColor[colorPos][1]);
|
|
10262
|
-
}
|
|
10402
|
+
styfrzBtmShadow.background = g_workObj[`${_name}HitShadowColors`][_j] === `Default` ?
|
|
10403
|
+
g_workObj[`${_name}HitColors`][_j] : g_workObj[`${_name}HitShadowColors`][_j];
|
|
10263
10404
|
$id(`frzHit${_j}`).opacity = 0.9;
|
|
10264
10405
|
$id(`frzTop${frzNo}`).display = C_DIS_NONE;
|
|
10265
10406
|
if (isNaN(parseFloat(g_workObj.arrowRtn[_j]))) {
|
|
@@ -10281,6 +10422,8 @@ const changeFailedFrz = (_j, _k) => {
|
|
|
10281
10422
|
$id(`frzTop${frzNo}`).display = C_DIS_INHERIT;
|
|
10282
10423
|
$id(`frzTop${frzNo}`).background = `#cccccc`;
|
|
10283
10424
|
$id(`frzTopShadow${frzNo}`).opacity = 1;
|
|
10425
|
+
$id(`frzTopShadow${frzNo}`).background = `#333333`;
|
|
10426
|
+
$id(`frzBtmShadow${frzNo}`).background = `#333333`;
|
|
10284
10427
|
$id(`frzBar${frzNo}`).background = `#999999`;
|
|
10285
10428
|
$id(`frzBar${frzNo}`).opacity = 1;
|
|
10286
10429
|
$id(`frzBtm${frzNo}`).background = `#cccccc`;
|
|
@@ -10289,12 +10432,6 @@ const changeFailedFrz = (_j, _k) => {
|
|
|
10289
10432
|
const hitPos = g_workObj.hitPosition * g_workObj.scrollDir[_j];
|
|
10290
10433
|
$id(`frzTop${frzNo}`).top = wUnit(- hitPos);
|
|
10291
10434
|
$id(`frzTopShadow${frzNo}`).top = wUnit(- hitPos);
|
|
10292
|
-
|
|
10293
|
-
const colorPos = g_keyObj[`color${g_keyObj.currentKey}_${g_keyObj.currentPtn}`][_j];
|
|
10294
|
-
if (g_headerObj.frzShadowColor[colorPos][0] !== ``) {
|
|
10295
|
-
$id(`frzTopShadow${frzNo}`).background = `#333333`;
|
|
10296
|
-
$id(`frzBtmShadow${frzNo}`).background = `#333333`;
|
|
10297
|
-
}
|
|
10298
10435
|
};
|
|
10299
10436
|
|
|
10300
10437
|
/**
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2024/
|
|
8
|
+
* Revised : 2024/04/15 (v36.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -113,6 +113,12 @@ const g_limitObj = {
|
|
|
113
113
|
mainSiz: 14,
|
|
114
114
|
musicTitleSiz: 13,
|
|
115
115
|
keySetSiz: 15,
|
|
116
|
+
|
|
117
|
+
// ボタン基準横幅(最大)
|
|
118
|
+
btnBaseWidth: 900,
|
|
119
|
+
|
|
120
|
+
// キーコンフィグのカラーピッカー幅
|
|
121
|
+
kcColorPickerX: 60,
|
|
116
122
|
};
|
|
117
123
|
|
|
118
124
|
/** 設定項目の位置 */
|
|
@@ -171,6 +177,9 @@ $id(`canvas-frame`).width = `${Math.max(g_sWidth, 500)}px`;
|
|
|
171
177
|
$id(`canvas-frame`).height = `${Math.max(g_sHeight, 500)}px`;
|
|
172
178
|
$id(`canvas-frame`).margin = `auto`;
|
|
173
179
|
|
|
180
|
+
const g_btnWidth = (_multi = 1) => Math.min(g_sWidth, g_limitObj.btnBaseWidth) * _multi;
|
|
181
|
+
const g_btnX = (_multi = 0) => g_btnWidth(_multi) + Math.max((g_sWidth - g_limitObj.btnBaseWidth) / 2, 0);
|
|
182
|
+
|
|
174
183
|
// 固定ウィンドウサイズ
|
|
175
184
|
const g_windowObj = {
|
|
176
185
|
divRoot: { margin: `auto`, letterSpacing: `normal` },
|
|
@@ -191,7 +200,7 @@ const updateWindowSiz = _ => {
|
|
|
191
200
|
displaySprite: { x: 25, y: 30, w: (g_sWidth - 450) / 2, h: g_limitObj.setLblHeight * 5 },
|
|
192
201
|
scoreDetail: { x: 20, y: 85, w: (g_sWidth - 500) / 2 + 420, h: 236, visibility: `hidden` },
|
|
193
202
|
detailObj: { w: (g_sWidth - 500) / 2 + 420, h: 230, visibility: `hidden` },
|
|
194
|
-
keyconSprite: { y: 88, h: g_sHeight, overflow: `auto` },
|
|
203
|
+
keyconSprite: { y: 88, h: g_sHeight - 85, overflow: `auto` },
|
|
195
204
|
loader: { y: g_sHeight - 10, h: 10, backgroundColor: `#333333` },
|
|
196
205
|
playDataWindow: { x: g_sWidth / 2 - 225, y: 70, w: 450, h: 110 },
|
|
197
206
|
resultWindow: { x: g_sWidth / 2 - 200, y: 185, w: 400, h: 210 },
|
|
@@ -201,51 +210,53 @@ const updateWindowSiz = _ => {
|
|
|
201
210
|
|
|
202
211
|
/** タイトル画面 */
|
|
203
212
|
btnReset: {
|
|
204
|
-
x:
|
|
213
|
+
x: g_btnX(), y: g_sHeight - 20, w: g_btnWidth(1 / 4), h: 16, siz: 12, title: g_msgObj.dataReset,
|
|
205
214
|
},
|
|
206
215
|
btnReload: {
|
|
207
|
-
x: 10, y: 10, w: 30, h: 30, siz: 20, title: g_msgObj.reload,
|
|
216
|
+
x: 10 + g_btnX(), y: 10, w: 30, h: 30, siz: 20, title: g_msgObj.reload,
|
|
208
217
|
},
|
|
209
218
|
btnHelp: {
|
|
210
|
-
x:
|
|
219
|
+
x: g_btnX(), y: g_sHeight - 150, w: 40, h: 40, siz: 30, title: g_msgObj.howto,
|
|
211
220
|
},
|
|
212
221
|
lnkMaker: {
|
|
213
|
-
x:
|
|
222
|
+
x: g_btnX(), y: g_sHeight - 50, w: g_btnWidth(1 / 2), h: g_limitObj.lnkHeight,
|
|
214
223
|
align: C_ALIGN_LEFT, title: g_headerObj.creatorUrl,
|
|
215
224
|
},
|
|
216
225
|
lnkArtist: {
|
|
217
|
-
x:
|
|
226
|
+
x: g_btnX(1 / 2), y: g_sHeight - 50, w: g_btnWidth(1 / 2), h: g_limitObj.lnkHeight,
|
|
218
227
|
align: C_ALIGN_LEFT, title: g_headerObj.artistUrl,
|
|
219
228
|
},
|
|
220
229
|
lnkVersion: {
|
|
221
|
-
x:
|
|
230
|
+
x: g_btnX(1 / 4), y: g_sHeight - 20, w: g_btnWidth(3 / 4) - 20, h: 16,
|
|
222
231
|
align: C_ALIGN_RIGHT, title: g_msgObj.github,
|
|
223
232
|
},
|
|
224
233
|
lnkComparison: {
|
|
225
|
-
x:
|
|
234
|
+
x: g_btnX(1) - 20, y: g_sHeight - 20, w: 20, h: 16, siz: 12, title: g_msgObj.security,
|
|
226
235
|
},
|
|
227
236
|
lblComment: {
|
|
228
|
-
x:
|
|
237
|
+
x: g_btnX(), y: 70, w: g_btnWidth(), h: g_sHeight - 180, siz: g_limitObj.difSelectorSiz, align: C_ALIGN_LEFT,
|
|
229
238
|
overflow: `auto`, background: `#222222`, color: `#cccccc`, display: C_DIS_NONE,
|
|
230
239
|
whiteSpace: `normal`,
|
|
231
240
|
},
|
|
232
241
|
btnComment: {
|
|
233
|
-
x:
|
|
242
|
+
x: g_btnX(1) - 160, y: (g_sHeight / 2) + 150, w: 140, h: 50, siz: 20, border: `solid 1px #999999`,
|
|
234
243
|
},
|
|
235
244
|
|
|
236
245
|
/** 設定画面 */
|
|
237
|
-
btnBack: {
|
|
246
|
+
btnBack: {
|
|
247
|
+
x: g_btnX(),
|
|
248
|
+
},
|
|
238
249
|
btnKeyConfig: {
|
|
239
|
-
x:
|
|
250
|
+
x: g_btnX(1 / 3),
|
|
240
251
|
},
|
|
241
252
|
btnPlay: {
|
|
242
|
-
x:
|
|
253
|
+
x: g_btnX(2 / 3),
|
|
243
254
|
},
|
|
244
255
|
btnSwitchSetting: {
|
|
245
256
|
x: g_sWidth / 2 + 175 - g_limitObj.setMiniWidth / 2, y: 25, w: g_limitObj.setMiniWidth, h: 40,
|
|
246
257
|
},
|
|
247
258
|
btnSave: {
|
|
248
|
-
x:
|
|
259
|
+
x: g_btnX(), y: 5, w: g_btnWidth(1 / 5), h: 16, siz: 12,
|
|
249
260
|
title: g_msgObj.dataSave, borderStyle: `solid`,
|
|
250
261
|
},
|
|
251
262
|
|
|
@@ -319,16 +330,17 @@ const updateWindowSiz = _ => {
|
|
|
319
330
|
|
|
320
331
|
/** キーコンフィグ画面 */
|
|
321
332
|
scKcMsg: {
|
|
322
|
-
x:
|
|
333
|
+
x: g_btnX(), y: g_sHeight - 50, w: g_btnWidth(), h: 20,
|
|
323
334
|
},
|
|
324
335
|
kcMsg: {
|
|
325
|
-
x:
|
|
336
|
+
x: g_btnX(), y: g_sHeight - 33, w: g_btnWidth(), h: 20, siz: g_limitObj.mainSiz,
|
|
337
|
+
pointerEvents: `none`,
|
|
326
338
|
},
|
|
327
339
|
kcDesc: {
|
|
328
|
-
x:
|
|
340
|
+
x: g_btnX(), y: 68, w: g_btnWidth(), h: 20,
|
|
329
341
|
},
|
|
330
342
|
kcShuffleDesc: {
|
|
331
|
-
x: 5, y: g_sHeight - 125, w:
|
|
343
|
+
x: 5 + g_btnX(), y: g_sHeight - 125, w: g_btnWidth(), h: 20, align: C_ALIGN_LEFT,
|
|
332
344
|
},
|
|
333
345
|
pickPos: {
|
|
334
346
|
x: 0, w: 50, h: 15, siz: 11, align: C_ALIGN_LEFT, background: `#${g_headerObj.baseBrightFlg ? `eeeeee` : `111111`}80`,
|
|
@@ -338,31 +350,31 @@ const updateWindowSiz = _ => {
|
|
|
338
350
|
},
|
|
339
351
|
|
|
340
352
|
btnKcBack: {
|
|
341
|
-
x:
|
|
342
|
-
w:
|
|
353
|
+
x: g_btnX(1 / 3), y: g_sHeight - 75,
|
|
354
|
+
w: g_btnWidth(1 / 3), h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
|
|
343
355
|
},
|
|
344
356
|
lblPattern: {
|
|
345
|
-
x:
|
|
357
|
+
x: g_btnX(1 / 6), y: g_sHeight - 100, w: g_btnWidth() / 3, h: g_limitObj.btnHeight / 2,
|
|
346
358
|
},
|
|
347
359
|
btnPtnChangeR: {
|
|
348
|
-
x:
|
|
349
|
-
w:
|
|
360
|
+
x: g_btnX(1 / 2), y: g_sHeight - 100,
|
|
361
|
+
w: g_btnWidth(1 / 9), h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
|
|
350
362
|
},
|
|
351
363
|
btnPtnChangeL: {
|
|
352
|
-
x:
|
|
353
|
-
w:
|
|
364
|
+
x: g_btnX(1 / 18), y: g_sHeight - 100,
|
|
365
|
+
w: g_btnWidth(1 / 9), h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
|
|
354
366
|
},
|
|
355
367
|
btnPtnChangeRR: {
|
|
356
|
-
x:
|
|
357
|
-
w:
|
|
368
|
+
x: g_btnX(11 / 18), y: g_sHeight - 100,
|
|
369
|
+
w: g_btnWidth(1 / 18), h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
|
|
358
370
|
},
|
|
359
371
|
btnPtnChangeLL: {
|
|
360
|
-
x:
|
|
361
|
-
w:
|
|
372
|
+
x: g_btnX(), y: g_sHeight - 100,
|
|
373
|
+
w: g_btnWidth(1 / 18), h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
|
|
362
374
|
},
|
|
363
375
|
btnKcReset: {
|
|
364
|
-
x:
|
|
365
|
-
w:
|
|
376
|
+
x: g_btnX(), y: g_sHeight - 75,
|
|
377
|
+
w: g_btnWidth(1 / 3), h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
|
|
366
378
|
},
|
|
367
379
|
|
|
368
380
|
/** メイン画面 */
|
|
@@ -418,27 +430,27 @@ const updateWindowSiz = _ => {
|
|
|
418
430
|
x: g_sWidth / 2 + 50, y: 40, w: 200, h: 30, siz: 20,
|
|
419
431
|
},
|
|
420
432
|
btnRsBack: {
|
|
421
|
-
w:
|
|
433
|
+
x: g_btnX(), w: g_btnWidth(1 / 4), h: g_limitObj.btnHeight * 5 / 4, animationName: `smallToNormalY`,
|
|
422
434
|
},
|
|
423
435
|
btnRsCopy: {
|
|
424
|
-
x:
|
|
436
|
+
x: g_btnX(1 / 4), w: g_btnWidth(1 / 2), h: g_limitObj.btnHeight * 5 / 8, siz: 24, animationName: `smallToNormalY`,
|
|
425
437
|
},
|
|
426
438
|
btnRsTweet: {
|
|
427
|
-
x:
|
|
428
|
-
w:
|
|
439
|
+
x: g_btnX(1 / 4), y: g_sHeight - 100 + g_limitObj.btnHeight * 5 / 8,
|
|
440
|
+
w: g_btnWidth(1 / 4), h: g_limitObj.btnHeight * 5 / 8, siz: 24, animationName: `smallToNormalY`,
|
|
429
441
|
},
|
|
430
442
|
btnRsGitter: {
|
|
431
|
-
x:
|
|
432
|
-
w:
|
|
443
|
+
x: g_btnX(1 / 2), y: g_sHeight - 100 + g_limitObj.btnHeight * 5 / 8,
|
|
444
|
+
w: g_btnWidth(1 / 4), h: g_limitObj.btnHeight * 5 / 8, siz: 24, animationName: `smallToNormalY`,
|
|
433
445
|
},
|
|
434
446
|
btnRsRetry: {
|
|
435
|
-
x:
|
|
447
|
+
x: g_btnX(3 / 4), w: g_btnWidth(1 / 4), h: g_limitObj.btnHeight * 5 / 4, animationName: `smallToNormalY`,
|
|
436
448
|
},
|
|
437
449
|
btnRsCopyImage: {
|
|
438
|
-
x:
|
|
450
|
+
x: g_btnX(1) - 40, y: 0, w: 40, h: 40, siz: 30,
|
|
439
451
|
},
|
|
440
452
|
btnRsCopyClose: {
|
|
441
|
-
x:
|
|
453
|
+
x: g_btnX(1) - 80, y: 0, w: 80, h: 40, siz: 20,
|
|
442
454
|
},
|
|
443
455
|
resultImageDesc: {
|
|
444
456
|
x: 0, y: g_sHeight - 30, w: g_sWidth, h: 20, siz: g_limitObj.mainSiz,
|
|
@@ -604,12 +616,15 @@ let g_imgExtensions = [`png`, `gif`, `bmp`, `jpg`, `jpeg`, `svg`];
|
|
|
604
616
|
const g_typeLists = {
|
|
605
617
|
arrow: [`arrow`, `dummyArrow`, `frz`, `dummyFrz`],
|
|
606
618
|
color: [`color`, `acolor`],
|
|
607
|
-
|
|
619
|
+
arrowColor: [``, `Shadow`],
|
|
620
|
+
frzColor: [`Normal`, `NormalBar`, `Hit`, `HitBar`, `NormalShadow`, `HitShadow`],
|
|
608
621
|
dataList: [
|
|
609
622
|
`Arrow`, `FrzArrow`, `FrzLength`,
|
|
610
|
-
`Color`, `ColorCd`, `ScrollchArrow`, `ScrollchStep`, `ScrollchArrowDir`, `ScrollchStepDir`,
|
|
623
|
+
`Color`, `ColorCd`, `ColorShadow`, `ColorShadowCd`, `ScrollchArrow`, `ScrollchStep`, `ScrollchArrowDir`, `ScrollchStepDir`,
|
|
611
624
|
`FColorNormal`, `FColorNormalCd`, `FColorNormalBar`, `FColorNormalBarCd`,
|
|
625
|
+
`FColorNormalShadow`, `FColorNormalShadowCd`,
|
|
612
626
|
`FColorHit`, `FColorHitCd`, `FColorHitBar`, `FColorHitBarCd`,
|
|
627
|
+
`FColorHitShadow`, `FColorHitShadowCd`,
|
|
613
628
|
`ArrowCssMotion`, `ArrowCssMotionName`,
|
|
614
629
|
`FrzCssMotion`, `FrzCssMotionName`,
|
|
615
630
|
`ArrowColorChangeAll`, `FrzColorChangeAll`,
|
|
@@ -663,6 +678,19 @@ const g_escapeStr = {
|
|
|
663
678
|
[`Quote`, `Ja-Colon`], [`BracketLeft`, `Ja-@`], [`BracketRight`, `Ja-[`],
|
|
664
679
|
[`Backslash`, `Ja-]`], [`Equal`, `Ja-^`],
|
|
665
680
|
],
|
|
681
|
+
colorPatternName: [
|
|
682
|
+
[`AR`, `Arrow`], [`AS`, `ArrowShadow`],
|
|
683
|
+
[`NA`, `Normal`], [`NB`, `NormalBar`], [`NS`, `NormalShadow`],
|
|
684
|
+
[`HA`, `Hit`], [`HB`, `HitBar`], [`HS`, `HitShadow`],
|
|
685
|
+
[`FN`, `Normal/NormalBar`], [`FH`, `Hit/HitBar`], [`FS`, `NormalShadow/HitShadow`],
|
|
686
|
+
[`AF`, `Arrow/Normal/NormalBar/Hit/HitBar`],
|
|
687
|
+
[`FrzNormal`, `Normal/NormalBar`], [`FrzHit`, `Hit/HitBar`],
|
|
688
|
+
[`FrzShadow`, `NormalShadow/HitShadow`],
|
|
689
|
+
[`Frz`, `Normal/NormalBar/Hit/HitBar`],
|
|
690
|
+
],
|
|
691
|
+
targetPatternName: [
|
|
692
|
+
[`all`, `g0/g1/g2/g3/g4`],
|
|
693
|
+
],
|
|
666
694
|
};
|
|
667
695
|
|
|
668
696
|
/** 設定・オプション画面用共通 */
|
|
@@ -2728,6 +2756,8 @@ const g_lang_msgInfoObj = {
|
|
|
2728
2756
|
E_0104: `新しいキー:{0}の[keyCtrl]が未定義です。(E-0104)<br>
|
|
2729
2757
|
|keyCtrl{0}=75,79,76,80,187,32/0|`,
|
|
2730
2758
|
|
|
2759
|
+
E_0201: `色変化データで指定した色変化対象が存在しません。[pattern={0}] (E-0201)`,
|
|
2760
|
+
|
|
2731
2761
|
I_0001: `リザルトデータをクリップボードにコピーしました!`,
|
|
2732
2762
|
I_0002: `入力したキーは割り当てできません。他のキーを指定してください。`,
|
|
2733
2763
|
I_0003: `各譜面の明細情報をクリップボードにコピーしました!`,
|
|
@@ -2775,6 +2805,8 @@ const g_lang_msgInfoObj = {
|
|
|
2775
2805
|
E_0104: `New key: {0} [keyCtrl] is not set. (E-0104)<br>
|
|
2776
2806
|
|keyCtrl{0}=75,79,76,80,187,32/0|`,
|
|
2777
2807
|
|
|
2808
|
+
E_0201: `The color change target specified in the color change data does not exist. [pattern={0}] (E-0201)`,
|
|
2809
|
+
|
|
2778
2810
|
I_0001: `Your result data is copied to the clipboard!`,
|
|
2779
2811
|
I_0002: `The specified key cannot be assigned. Please specify another key.`,
|
|
2780
2812
|
I_0003: `Charts information is copied to the clipboard!`,
|