danoniplus 35.4.5 → 35.5.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 CHANGED
@@ -4,12 +4,12 @@
4
4
  *
5
5
  * Source by tickle
6
6
  * Created : 2018/10/08
7
- * Revised : 2024/03/28
7
+ * Revised : 2024/04/03
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 35.4.5`;
12
- const g_revisedDate = `2024/03/28`;
11
+ const g_version = `Ver 35.5.0`;
12
+ const g_revisedDate = `2024/04/03`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -1262,7 +1262,8 @@ const deleteDiv = (_parentId, _idName) => {
1262
1262
  * @param {object} _obj (x, y, w, h, siz, align, title, groupName, initDisabledFlg, ...rest)
1263
1263
  * @param {...any} _classes
1264
1264
  */
1265
- const createCss2Button = (_id, _text, _func = _ => true, { x = 0, y = g_sHeight - 100, w = g_sWidth / 3, h = g_limitObj.btnHeight,
1265
+ const createCss2Button = (_id, _text, _func = _ => true, {
1266
+ x = 0, y = g_sHeight - 100, w = g_btnWidth() / 3, h = g_limitObj.btnHeight,
1266
1267
  siz = g_limitObj.btnSiz, align = C_ALIGN_CENTER, title = ``, groupName = g_currentPage, initDisabledFlg = true,
1267
1268
  resetFunc = _ => true, cxtFunc = _ => true, ...rest } = {}, ..._classes) => {
1268
1269
 
@@ -4237,7 +4238,7 @@ const titleInit = _ => {
4237
4238
 
4238
4239
  // Click Here
4239
4240
  createCss2Button(`btnStart`, g_lblNameObj.clickHere, _ => clearTimeout(g_timeoutEvtTitleId), {
4240
- w: g_sWidth, siz: g_limitObj.titleSiz, resetFunc: _ => optionInit(),
4241
+ x: g_btnX(), w: g_btnWidth(), siz: g_limitObj.titleSiz, resetFunc: _ => optionInit(),
4241
4242
  }, g_cssObj.button_Start),
4242
4243
 
4243
4244
  // Reset
@@ -4384,8 +4385,8 @@ const makeWarningWindow = (_text = ``, { resetFlg = false, backBtnUse = false }
4384
4385
  * お知らせウィンドウ(汎用)を表示
4385
4386
  * @param {string} _text
4386
4387
  */
4387
- const makeInfoWindow = (_text, _animationName = ``, { _backColor = `#ccccff`, _x = 0, _y = 0 } = {}) => {
4388
- const lblWarning = setWindowStyle(`<p>${_text}</p>`, _backColor, `#000066`, C_ALIGN_CENTER, { _x, _y });
4388
+ const makeInfoWindow = (_text, _animationName = ``, { _backColor = `#ccccff` } = {}) => {
4389
+ const lblWarning = setWindowStyle(`<p>${_text}</p>`, _backColor, `#000066`, C_ALIGN_CENTER);
4389
4390
  lblWarning.style.pointerEvents = C_DIS_NONE;
4390
4391
 
4391
4392
  if (_animationName !== ``) {
@@ -4404,13 +4405,13 @@ const makeInfoWindow = (_text, _animationName = ``, { _backColor = `#ccccff`, _x
4404
4405
  * @param {string} _textColor
4405
4406
  * @param {string} _align
4406
4407
  */
4407
- const setWindowStyle = (_text, _bkColor, _textColor, _align = C_ALIGN_LEFT, { _x = 0, _y = 0 } = {}) => {
4408
+ const setWindowStyle = (_text, _bkColor, _textColor, _align = C_ALIGN_LEFT, { _x = g_btnX(), _y = 0, _w = g_btnWidth() } = {}) => {
4408
4409
 
4409
4410
  deleteDiv(divRoot, `lblWarning`);
4410
4411
 
4411
4412
  // ウィンドウ枠の行を取得するために一時的な枠を作成
4412
4413
  const tmplbl = createDivCss2Label(`lblTmpWarning`, _text, {
4413
- x: 0, y: 70, w: g_sWidth, h: 20, siz: g_limitObj.mainSiz, lineHeight: wUnit(15), fontFamily: getBasicFont(),
4414
+ x: _x, y: 70, w: _w, h: 20, siz: g_limitObj.mainSiz, lineHeight: wUnit(15), fontFamily: getBasicFont(),
4414
4415
  whiteSpace: `normal`,
4415
4416
  });
4416
4417
  divRoot.appendChild(tmplbl);
@@ -4421,7 +4422,7 @@ const setWindowStyle = (_text, _bkColor, _textColor, _align = C_ALIGN_LEFT, { _x
4421
4422
  const warnHeight = Math.min(150, Math.max(range.getClientRects().length,
4422
4423
  _text.split(`<br>`).length + _text.split(`<p>`).length - 1) * 21);
4423
4424
  const lbl = createDivCss2Label(`lblWarning`, _text, {
4424
- x: _x, y: 70 + _y, w: g_sWidth, h: warnHeight, siz: g_limitObj.mainSiz, backgroundColor: _bkColor,
4425
+ x: _x, y: 70 + _y, w: _w, h: warnHeight, siz: g_limitObj.mainSiz, backgroundColor: _bkColor,
4425
4426
  opacity: 0.9, lineHeight: wUnit(15), color: _textColor, align: _align, fontFamily: getBasicFont(),
4426
4427
  whiteSpace: `normal`,
4427
4428
  });
@@ -6320,12 +6321,13 @@ const keyConfigInit = (_kcType = g_kcType) => {
6320
6321
  adjustScrollPoint(parseFloat($id(`arrow${_j}`).left));
6321
6322
  };
6322
6323
 
6324
+ const addLeft = (maxLeftX === 0 ? 0 : - maxLeftX + g_limitObj.kcColorPickerX);
6323
6325
  for (let j = 0; j < keyNum; j++) {
6324
6326
 
6325
6327
  const posj = g_keyObj[`pos${keyCtrlPtn}`][j];
6326
6328
  const stdPos = posj - ((posj > divideCnt ? posMax : 0) + divideCnt) / 2;
6327
6329
 
6328
- const keyconX = g_keyObj.blank * stdPos + (kWidth - C_ARW_WIDTH) / 2 - maxLeftX;
6330
+ const keyconX = g_keyObj.blank * stdPos + (kWidth - C_ARW_WIDTH) / 2 + addLeft;
6329
6331
  const keyconY = C_KYC_HEIGHT * (Number(posj > divideCnt)) + 12;
6330
6332
  const colorPos = g_keyObj[`color${keyCtrlPtn}`][j];
6331
6333
  const arrowColor = getKeyConfigColor(j, colorPos);
@@ -6450,7 +6452,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
6450
6452
  * @returns ラベル
6451
6453
  */
6452
6454
  const makeKCButtonHeader = (_id, _name, {
6453
- x = g_sWidth * 5 / 6 - 30, y = 0, w = g_sWidth / 6, h = 20, siz = 12, align = C_ALIGN_LEFT, ...rest
6455
+ x = g_btnX(5 / 6) - 30, y = 0, w = g_btnWidth(1 / 6), h = 20, siz = 12, align = C_ALIGN_LEFT, ...rest
6454
6456
  } = {}, ..._classes) => createDivCss2Label(_id, g_lblNameObj[_name], { x, y, w, h, siz, align, ...rest }, ..._classes);
6455
6457
 
6456
6458
  /**
@@ -6463,7 +6465,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
6463
6465
  * @param {...any} _classes
6464
6466
  * @returns ボタン
6465
6467
  */
6466
- const makeKCButton = (_id, _text, _func, { x = g_sWidth * 5 / 6 - 20, y = 15, w = g_sWidth / 6, h = 18,
6468
+ const makeKCButton = (_id, _text, _func, { x = g_btnX(5 / 6) - 20, y = 15, w = g_btnWidth(1 / 6), h = 18,
6467
6469
  siz = g_limitObj.jdgCntsSiz, borderStyle = `solid`, cxtFunc, ...rest } = {}, _mainClass = g_cssObj.button_RevOFF, ..._classes) =>
6468
6470
  makeSettingLblCssButton(_id, getStgDetailName(_text), 0, _func, { x, y, w, h, siz, cxtFunc, borderStyle, ...rest }, _mainClass, ..._classes);
6469
6471
 
@@ -6474,7 +6476,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
6474
6476
  * @param {function} _func
6475
6477
  * @param {*} object (x, y, w, h, siz)
6476
6478
  */
6477
- const makeMiniKCButton = (_id, _directionFlg, _func, { x = g_sWidth * 5 / 6 - 30, y = 15, w = 15, h = 20, siz = g_limitObj.mainSiz } = {}) =>
6479
+ const makeMiniKCButton = (_id, _directionFlg, _func, { x = g_btnX(5 / 6) - 30, y = 15, w = 15, h = 20, siz = g_limitObj.mainSiz } = {}) =>
6478
6480
  createCss2Button(`${_id}${_directionFlg}`, g_settingBtnObj.chara[_directionFlg], _func, { x, y, w, h, siz }, g_cssObj.button_Mini);
6479
6481
 
6480
6482
  /**
@@ -6482,16 +6484,16 @@ const keyConfigInit = (_kcType = g_kcType) => {
6482
6484
  * @param {string} _type
6483
6485
  * @param {object} obj (baseX)
6484
6486
  */
6485
- const makeGroupButton = (_type, { baseX = g_sWidth * 5 / 6 - 20, baseY = 0, cssName } = {}) => {
6487
+ const makeGroupButton = (_type, { baseX = g_btnX(5 / 6) - 20, baseY = 0, cssName } = {}) => {
6486
6488
  if (g_headerObj[`${_type}Use`] && g_keycons[`${_type}Groups`].length > 1) {
6487
6489
  const typeName = toCapitalize(_type);
6488
6490
  multiAppend(divRoot,
6489
6491
  makeKCButtonHeader(`lbl${_type}Group`, `${typeName}Group`, { x: baseX - 10, y: baseY }, cssName),
6490
6492
  makeKCButton(`lnk${typeName}Group`, ``, _ => setGroup(_type), {
6491
- x: baseX, y: baseY + 13, w: g_sWidth / 18, title: g_msgObj[`${_type}Group`], cxtFunc: _ => setGroup(_type, -1),
6493
+ x: baseX, y: baseY + 13, w: g_btnWidth(1 / 18), title: g_msgObj[`${_type}Group`], cxtFunc: _ => setGroup(_type, -1),
6492
6494
  }),
6493
6495
  makeMiniKCButton(`lnk${typeName}Group`, `L`, _ => setGroup(_type, -1), { x: baseX - 10, y: baseY + 13 }),
6494
- makeMiniKCButton(`lnk${typeName}Group`, `R`, _ => setGroup(_type), { x: baseX + g_sWidth / 18, y: baseY + 13 }),
6496
+ makeMiniKCButton(`lnk${typeName}Group`, `R`, _ => setGroup(_type), { x: baseX + g_btnWidth(1 / 18), y: baseY + 13 }),
6495
6497
  );
6496
6498
  } else {
6497
6499
  g_keycons[`${_type}GroupNum`] = 0;
@@ -6514,30 +6516,30 @@ const keyConfigInit = (_kcType = g_kcType) => {
6514
6516
  ),
6515
6517
 
6516
6518
  // キーカラータイプ切替ボタン
6517
- makeKCButtonHeader(`lblcolorType`, `ColorType`, { x: 10 }, g_cssObj.keyconfig_ColorType),
6519
+ makeKCButtonHeader(`lblcolorType`, `ColorType`, { x: 10 + g_btnX() }, g_cssObj.keyconfig_ColorType),
6518
6520
  makeKCButton(`lnkColorType`, g_colorType, _ => setColorType(), {
6519
- x: 20, title: g_msgObj.colorType, cxtFunc: _ => setColorType(-1),
6521
+ x: 20 + g_btnX(), title: g_msgObj.colorType, cxtFunc: _ => setColorType(-1),
6520
6522
  }),
6521
- makeMiniKCButton(`lnkColorType`, `L`, _ => setColorType(-1), { x: 10 }),
6522
- makeMiniKCButton(`lnkColorType`, `R`, _ => setColorType(), { x: 20 + g_sWidth / 6 }),
6523
+ makeMiniKCButton(`lnkColorType`, `L`, _ => setColorType(-1), { x: 10 + g_btnX() }),
6524
+ makeMiniKCButton(`lnkColorType`, `R`, _ => setColorType(), { x: 20 + g_btnX(1 / 6) }),
6523
6525
  );
6524
6526
 
6525
6527
  if (g_headerObj.imgType.length > 1) {
6526
- const [imgBaseX, imgBaseY] = [20, 50];
6528
+ const [imgBaseX, imgBaseY] = [20 + g_btnX(), 50];
6527
6529
  multiAppend(divRoot,
6528
6530
  // オブジェクトタイプの切り替え(リロードあり)
6529
- makeKCButtonHeader(`lblImgType`, `ImgType`, { x: 10, y: 37 }, g_cssObj.keyconfig_ConfigType),
6531
+ makeKCButtonHeader(`lblImgType`, `ImgType`, { x: imgBaseX - 10, y: 37 }, g_cssObj.keyconfig_ConfigType),
6530
6532
  makeKCButton(`lnkImgType`, g_imgType, _ => setImgType(), {
6531
6533
  x: imgBaseX, y: imgBaseY, title: g_msgObj.imgType, cxtFunc: _ => setImgType(-1),
6532
6534
  }),
6533
6535
  makeMiniKCButton(`lnkImgType`, `L`, _ => setImgType(-1), { x: imgBaseX - 10, y: imgBaseY }),
6534
- makeMiniKCButton(`lnkImgType`, `R`, _ => setImgType(), { x: imgBaseX + g_sWidth / 6, y: imgBaseY }),
6536
+ makeMiniKCButton(`lnkImgType`, `R`, _ => setImgType(), { x: imgBaseX + g_btnWidth(1 / 6), y: imgBaseY }),
6535
6537
  );
6536
6538
  }
6537
6539
 
6538
6540
  // カラー/シャッフルグループ切替ボタン(カラー/シャッフルパターンが複数ある場合のみ)
6539
6541
  makeGroupButton(`color`, { cssName: g_cssObj.keyconfig_ColorType });
6540
- makeGroupButton(`shuffle`, { baseX: g_sWidth * 11 / 12 - 10, cssName: g_cssObj.settings_Shuffle });
6542
+ makeGroupButton(`shuffle`, { baseX: g_btnX(11 / 12) - 10, cssName: g_cssObj.settings_Shuffle });
6541
6543
  makeGroupButton(`stepRtn`, { baseY: 37, cssName: g_cssObj.settings_Adjustment });
6542
6544
 
6543
6545
  /**
@@ -6547,7 +6549,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
6547
6549
  const posj = g_keyObj[`pos${keyCtrlPtn}`][g_currentj];
6548
6550
  const stdPos = posj - ((posj > divideCnt ? posMax : 0) + divideCnt) / 2;
6549
6551
 
6550
- const nextLeft = (kWidth - C_ARW_WIDTH) / 2 + g_keyObj.blank * stdPos - maxLeftX - 10;
6552
+ const nextLeft = (kWidth - C_ARW_WIDTH) / 2 + g_keyObj.blank * stdPos + addLeft - 10;
6551
6553
  cursor.style.left = wUnit(nextLeft);
6552
6554
  cursor.style.top = wUnit(C_KYC_HEIGHT * Number(posj > divideCnt) + 57 + C_KYC_REPHEIGHT * g_currentk);
6553
6555
  g_kcType = (g_currentk === 0 ? `Main` : `Replaced`);
@@ -6583,7 +6585,6 @@ const keyConfigInit = (_kcType = g_kcType) => {
6583
6585
  }
6584
6586
 
6585
6587
  setKeyConfigCursor();
6586
- keyconSprite.scrollLeft = - maxLeftX;
6587
6588
  };
6588
6589
 
6589
6590
  const getNextNum = (_scrollNum, _groupName, _target) =>
@@ -6876,7 +6877,6 @@ const keyConfigInit = (_kcType = g_kcType) => {
6876
6877
  }
6877
6878
  }
6878
6879
  changeConfigCursor(0);
6879
- keyconSprite.scrollLeft = - maxLeftX;
6880
6880
  }
6881
6881
  }, g_lblPosObj.btnKcReset, g_cssObj.button_Reset),
6882
6882
 
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2024/03/28 (v35.4.5)
8
+ * Revised : 2024/04/03 (v35.5.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: 0, y: g_sHeight - 20, w: g_sWidth / 4, h: 16, siz: 12, title: g_msgObj.dataReset,
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: 0, y: g_sHeight - 150, w: 40, h: 40, siz: 30, title: g_msgObj.howto,
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: 0, y: g_sHeight - 50, w: g_sWidth / 2, h: g_limitObj.lnkHeight,
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: g_sWidth / 2, y: g_sHeight - 50, w: g_sWidth / 2, h: g_limitObj.lnkHeight,
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: g_sWidth / 4, y: g_sHeight - 20, w: g_sWidth * 3 / 4 - 20, h: 16,
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: g_sWidth - 20, y: g_sHeight - 20, w: 20, h: 16, siz: 12, title: g_msgObj.security,
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: 0, y: 70, w: g_sWidth, h: g_sHeight - 180, siz: g_limitObj.difSelectorSiz, align: C_ALIGN_LEFT,
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: g_sWidth - 160, y: (g_sHeight / 2) + 150, w: 140, h: 50, siz: 20, border: `solid 1px #999999`,
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: g_sWidth / 3,
250
+ x: g_btnX(1 / 3),
240
251
  },
241
252
  btnPlay: {
242
- x: g_sWidth * 2 / 3,
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: 0, y: 5, w: g_sWidth / 5, h: 16, siz: 12,
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: 0, y: g_sHeight - 45, w: g_sWidth, h: 20,
333
+ x: g_btnX(), y: g_sHeight - 50, w: g_btnWidth(), h: 20,
323
334
  },
324
335
  kcMsg: {
325
- x: 0, y: g_sHeight - 25, w: g_sWidth, h: 20, siz: g_limitObj.mainSiz,
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: 0, y: 68, w: g_sWidth, h: 20,
340
+ x: g_btnX(), y: 68, w: g_btnWidth(), h: 20,
329
341
  },
330
342
  kcShuffleDesc: {
331
- x: 5, y: g_sHeight - 125, w: g_sWidth, h: 20, align: C_ALIGN_LEFT,
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: g_sWidth / 3, y: g_sHeight - 75,
342
- w: g_sWidth / 3, h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
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: g_sWidth / 6, y: g_sHeight - 100, w: g_sWidth / 3, h: g_limitObj.btnHeight / 2,
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: g_sWidth / 2, y: g_sHeight - 100,
349
- w: g_sWidth / 9, h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
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: g_sWidth / 18, y: g_sHeight - 100,
353
- w: g_sWidth / 9, h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
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: g_sWidth * 11 / 18, y: g_sHeight - 100,
357
- w: g_sWidth / 18, h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
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: 0, y: g_sHeight - 100,
361
- w: g_sWidth / 18, h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
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: 0, y: g_sHeight - 75,
365
- w: g_sWidth / 3, h: g_limitObj.btnHeight / 2, siz: g_limitObj.btnSiz * 2 / 3,
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: g_sWidth / 4, h: g_limitObj.btnHeight * 5 / 4, animationName: `smallToNormalY`,
433
+ x: g_btnX(), w: g_btnWidth(1 / 4), h: g_limitObj.btnHeight * 5 / 4, animationName: `smallToNormalY`,
422
434
  },
423
435
  btnRsCopy: {
424
- x: g_sWidth / 4, w: g_sWidth / 2, h: g_limitObj.btnHeight * 5 / 8, siz: 24, animationName: `smallToNormalY`,
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: g_sWidth / 4, y: g_sHeight - 100 + g_limitObj.btnHeight * 5 / 8,
428
- w: g_sWidth / 4, h: g_limitObj.btnHeight * 5 / 8, siz: 24, animationName: `smallToNormalY`,
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: g_sWidth / 2, y: g_sHeight - 100 + g_limitObj.btnHeight * 5 / 8,
432
- w: g_sWidth / 4, h: g_limitObj.btnHeight * 5 / 8, siz: 24, animationName: `smallToNormalY`,
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: g_sWidth / 4 * 3, w: g_sWidth / 4, h: g_limitObj.btnHeight * 5 / 4, animationName: `smallToNormalY`,
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: g_sWidth - 40, y: 0, w: 40, h: 40, siz: 30,
450
+ x: g_btnX(1) - 40, y: 0, w: 40, h: 40, siz: 30,
439
451
  },
440
452
  btnRsCopyClose: {
441
- x: g_sWidth - 80, y: 0, w: 80, h: 40, siz: 20,
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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "35.4.5",
3
+ "version": "35.5.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {