danoniplus 31.3.1 → 31.4.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 : 2023/04/05
7
+ * Revised : 2023/04/08
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 31.3.1`;
12
- const g_revisedDate = `2023/04/05`;
11
+ const g_version = `Ver 31.4.0`;
12
+ const g_revisedDate = `2023/04/08`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -525,7 +525,7 @@ const transCode = _setCode => {
525
525
  * 特定キーをブロックする処理
526
526
  * @param {string} _setCode
527
527
  */
528
- const blockCode = _setCode => !C_BLOCK_KEYS.map(key => g_kCdN[key]).includes(_setCode);
528
+ const blockCode = _setCode => !C_BLOCK_KEYS.includes(_setCode);
529
529
 
530
530
 
531
531
  /*-----------------------------------------------------------*/
@@ -2668,9 +2668,9 @@ const headerConvert = _dosObj => {
2668
2668
  g_settings.speeds = [...Array((obj.maxSpeed - obj.minSpeed) * 20 + 1).keys()].map(i => obj.minSpeed + i / 20);
2669
2669
 
2670
2670
  // プレイ中のショートカットキー
2671
- obj.keyRetry = setIntVal(_dosObj.keyRetry, C_KEY_RETRY);
2671
+ obj.keyRetry = setIntVal(getKeyCtrlVal(_dosObj.keyRetry), C_KEY_RETRY);
2672
2672
  obj.keyRetryDef = obj.keyRetry;
2673
- obj.keyTitleBack = setIntVal(_dosObj.keyTitleBack, C_KEY_TITLEBACK);
2673
+ obj.keyTitleBack = setIntVal(getKeyCtrlVal(_dosObj.keyTitleBack), C_KEY_TITLEBACK);
2674
2674
  obj.keyTitleBackDef = obj.keyTitleBack;
2675
2675
 
2676
2676
  // フリーズアローの許容フレーム数設定
@@ -3499,6 +3499,19 @@ const getGaugeSetting = (_dosObj, _name, _difLength, { scoreId = 0 } = {}) => {
3499
3499
  */
3500
3500
  const getKeyName = _key => hasVal(g_keyObj[`keyName${_key}`]) ? g_keyObj[`keyName${_key}`] : _key;
3501
3501
 
3502
+ /**
3503
+ * KeyBoardEvent.code の値をCW Edition用のキーコードに変換
3504
+ * 簡略指定ができるように、以下の記述を許容
3505
+ * 例) KeyD -> D, ArrowDown -> Down, AltLeft -> Alt
3506
+ * @param {string} _kCdN
3507
+ * @returns
3508
+ */
3509
+ const getKeyCtrlVal = _kCdN => {
3510
+ const convVal = Object.keys(g_kCdN).findIndex(val =>
3511
+ [_kCdN, `Key${_kCdN}`, `Arrow${_kCdN}`].includes(g_kCdN[val]) || _kCdN === replaceStr(g_kCdN[val], g_escapeStr.keyCtrlName));
3512
+ return convVal !== -1 ? convVal : parseInt(_kCdN, 10);
3513
+ };
3514
+
3502
3515
  /**
3503
3516
  * 一時的な追加キーの設定
3504
3517
  * @param {object} _dosObj
@@ -3517,9 +3530,9 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
3517
3530
 
3518
3531
  const existParam = (_data, _paramName) => !hasVal(_data) && g_keyObj[_paramName] !== undefined;
3519
3532
  const toString = _str => _str;
3520
- const toNumber = _num => parseInt(_num, 10);
3521
3533
  const toFloat = _num => parseFloat(_num);
3522
- const toKeyCtrlArray = _str => makeBaseArray(_str.split(`/`).map(n => toNumber(n)), g_keyObj.minKeyCtrlNum, 0);
3534
+ const toKeyCtrlArray = _str =>
3535
+ makeBaseArray(_str.split(`/`).map(n => getKeyCtrlVal(n)), g_keyObj.minKeyCtrlNum, 0);
3523
3536
  const toSplitArrayStr = _str => _str.split(`/`).map(n => n);
3524
3537
 
3525
3538
  /**
@@ -3756,10 +3769,10 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
3756
3769
  newKeySingleParam(newKey, `scale`, C_TYP_FLOAT);
3757
3770
 
3758
3771
  // プレイ中ショートカット:リトライ (keyRetryX_Y)
3759
- newKeySingleParam(newKey, `keyRetry`, C_TYP_NUMBER);
3772
+ newKeySingleParam(newKey, `keyRetry`, C_TYP_STRING);
3760
3773
 
3761
3774
  // プレイ中ショートカット:タイトルバック (keyTitleBackX_Y)
3762
- newKeySingleParam(newKey, `keyTitleBack`, C_TYP_NUMBER);
3775
+ newKeySingleParam(newKey, `keyTitleBack`, C_TYP_STRING);
3763
3776
 
3764
3777
  // 別キーフラグ (transKeyX_Y)
3765
3778
  newKeySingleParam(newKey, `transKey`, C_TYP_STRING);
@@ -3777,6 +3790,10 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
3777
3790
  // アシストパターン (assistX_Y)
3778
3791
  // |assist(newKey)=Onigiri::0,0,0,0,0,1/AA::0,0,0,1,1,1$...|
3779
3792
  newKeyPairParam(newKey, `assist`, `assistPos`);
3793
+
3794
+ // keyRetry, keyTitleBackのキー名をキーコードに変換
3795
+ const keyTypePatterns = Object.keys(g_keyObj).filter(val => val.startsWith(`keyRetry${newKey}`) || val.startsWith(`keyTitleBack${newKey}`));
3796
+ keyTypePatterns.forEach(name => g_keyObj[name] = getKeyCtrlVal(g_keyObj[name]));
3780
3797
  });
3781
3798
 
3782
3799
  return keyExtraList;
@@ -5213,10 +5230,10 @@ const createOptionWindow = _sprite => {
5213
5230
 
5214
5231
  const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
5215
5232
  if (g_headerObj.keyRetryDef === C_KEY_RETRY) {
5216
- g_headerObj.keyRetry = setIntVal(g_keyObj[`keyRetry${keyCtrlPtn}`], g_headerObj.keyRetryDef);
5233
+ g_headerObj.keyRetry = setIntVal(getKeyCtrlVal(g_keyObj[`keyRetry${keyCtrlPtn}`]), g_headerObj.keyRetryDef);
5217
5234
  }
5218
5235
  if (g_headerObj.keyTitleBackDef === C_KEY_TITLEBACK) {
5219
- g_headerObj.keyTitleBack = setIntVal(g_keyObj[`keyTitleBack${keyCtrlPtn}`], g_headerObj.keyTitleBackDef);
5236
+ g_headerObj.keyTitleBack = setIntVal(getKeyCtrlVal(g_keyObj[`keyTitleBack${keyCtrlPtn}`]), g_headerObj.keyTitleBackDef);
5220
5237
  }
5221
5238
  }
5222
5239
 
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2023/04/05 (v31.3.1)
8
+ * Revised : 2023/04/08 (v31.4.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -600,15 +600,49 @@ const g_typeLists = {
600
600
  // Motionオプション配列の基準位置
601
601
  const C_MOTION_STD_POS = 15;
602
602
 
603
- // キーブロック対象(キーコードを指定)
603
+ // キーブロック対象(KeyBoardEvent.codeを指定)
604
604
  const C_BLOCK_KEYS = [
605
- 8, 9, 13, 17, 18, 32, /* BackSpace, Tab, Enter, Ctrl, Alt, Space */
606
- 33, 34, 35, 36, /* PageUp, PageDown, End, Home */
607
- 37, 38, 39, 40, 46, /* Left, Down, Up, Right, Delete */
608
- 112, 113, 114, 115, 0, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, /* F1~F15 (F5は除く) */
609
- 27 /* Esc */
605
+ `Backspace`, `Tab`, `Enter`, `ControlLeft`, `ControlRight`, `AltLeft`, `AltRight`, `Space`,
606
+ `PageUp`, `PageDown`, `End`, `Home`,
607
+ `ArrowLeft`, `ArrowDown`, `ArrowUp`, `ArrowRight`, `Delete`,
608
+ `F1`, `F2`, `F3`, `F4`, `F6`, `F7`, `F8`, `F9`, `F10`, `F11`, `F12`, `F13`, `F14`, `F15`, `Escape`
610
609
  ];
611
610
 
611
+ /**
612
+ * 特殊文字列の置き換えリスト
613
+ * (置き換え元、置き換え先の組で二次元配列として定義。主にreplaceStr関数で使用)
614
+ */
615
+ const g_escapeStr = {
616
+ escape: [[`&`, `&amp;`], [`<`, `&lt;`], [`>`, `&gt;`], [`"`, `&quot;`]],
617
+ escapeTag: [
618
+ [`*amp*`, `&amp;`], [`*pipe*`, `|`], [`*dollar*`, `$`], [`*rsquo*`, `&rsquo;`],
619
+ [`*quot*`, `&quot;`], [`*comma*`, `&sbquo;`], [`*squo*`, `&#39;`], [`*bkquo*`, `&#96;`],
620
+ [`*lt*`, `&lt;`], [`*gt*`, `&gt;`], [`*lbrace*`, `{`], [`*rbrace*`, `}`],
621
+ ],
622
+ unEscapeTag: [
623
+ [`&amp;`, `&`], [`&rsquo;`, `’`], [`&quot;`, `"`], [`&sbquo;`, `,`],
624
+ [`&lt;`, `<`], [`&gt;`, `>`], [`&#39;`, `'`], [`&#96;`, `\``],
625
+ ],
626
+ escapeCode: [
627
+ [`<script>`, ``], [`</script>`, ``],
628
+ ],
629
+ musicNameSimple: [
630
+ [`<br>`, ` `], [`<nbr>`, ``], [`<dbr>`, ` `],
631
+ ],
632
+ musicNameMultiLine: [
633
+ [`<nbr>`, `<br>`], [`<dbr>`, `<br>`],
634
+ ],
635
+ frzName: [
636
+ [`leftdia`, `frzLdia`], [`rightdia`, `frzRdia`],
637
+ [`left`, `frzLeft`], [`down`, `frzDown`], [`up`, `frzUp`], [`right`, `frzRight`],
638
+ [`space`, `frzSpace`], [`iyo`, `frzIyo`], [`gor`, `frzGor`], [`oni`, `foni`],
639
+ ],
640
+ keyCtrlName: [
641
+ [`Left`, ``], [`Digit`, `D`], [`Numpad`, `N`], [`Semicolon`, `;`],
642
+ [`Multiply`, `*`], [`Add`, `+`], [`Subtract`, `-`], [`Decimal`, `.`], [`Divide`, `Div`],
643
+ ],
644
+ };
645
+
612
646
  /** 設定・オプション画面用共通 */
613
647
  const g_graphColorObj = {
614
648
  max: `#993333cc`,
@@ -1771,52 +1805,52 @@ const g_keyObj = {
1771
1805
 
1772
1806
  // 基本パターン (キーコンフィグ)
1773
1807
  // - 順番はchara, stepRtnと対応している。
1774
- // - 多次元配列内はステップに対応するキーコードを示す。カンマ区切りで複数指定できる。
1775
- keyCtrl5_0: [[37], [40], [38], [39], [32]],
1776
- keyCtrl7_0: [[83], [68], [70], [32], [74], [75], [76]],
1777
- keyCtrl7i_0: [[90], [88], [67], [37], [40], [38], [39]],
1778
- keyCtrl8_0: [[83], [68], [70], [32], [74], [75], [76], [13]],
1779
- keyCtrl9A_0: [[83], [68], [69, 82], [70], [32], [74], [75], [73], [76]],
1780
- keyCtrl9B_0: [[65], [83], [68], [70], [32], [74], [75], [76], [187]],
1781
- keyCtrl9i_0: [[37], [40], [38], [39], [65], [83], [68], [70], [32]],
1782
- keyCtrl11_0: [[37], [40], [38], [39], [83], [68], [70], [32], [74], [75], [76]],
1783
- keyCtrl11L_0: [[87], [69], [51, 52], [82], [83], [68], [70], [32], [74], [75], [76]],
1784
- keyCtrl11W_0: [[49, 50], [84], [89], [48, 189], [83], [68], [70], [32], [74], [75], [76]],
1785
- keyCtrl11i_0: [[83], [88, 67], [68], [69, 82], [70], [32], [74], [77, 188], [75], [73, 79], [76]],
1786
- keyCtrl12_0: [[85], [73], [56, 57], [79], [32], [78], [74], [77], [75], [188], [76], [190]],
1787
- keyCtrl13_0: [[37], [40], [38], [39], [83], [68], [69, 82], [70], [32], [74], [75], [73], [76]],
1788
- keyCtrl14_0: [[84, 89], [85], [73], [56, 55, 57, 48], [79], [192, 80], [32], [78], [74], [77], [75], [188], [76], [190]],
1789
- keyCtrl14i_0: [[90, 87], [88, 69], [67, 82], [37], [40], [38], [39], [83], [68], [70], [32], [74], [75], [76]],
1790
- keyCtrl15A_0: [[87], [69], [51, 52], [82], [37], [40], [38], [39], [83], [68], [70], [32], [74], [75], [76]],
1791
- keyCtrl15B_0: [[87], [69], [51, 52], [82], [85], [73], [56, 57], [79], [83], [68], [70], [32], [74], [75], [76]],
1792
- keyCtrl16i_0: [[90, 87], [88, 69], [67, 82], [37], [40], [38], [39], [65], [83], [68], [70], [32], [74], [75], [76], [187]],
1793
- keyCtrl17_0: [[65], [90], [83], [88], [68], [67], [70], [86], [32], [78], [74], [77], [75], [188], [76], [190], [187]],
1794
- keyCtrl23_0: [[87], [69], [51, 52], [82], [85], [73], [56, 57], [79],
1795
- [90], [83], [88], [68], [67], [70], [86], [32], [78], [74], [77], [75], [188], [76], [190]],
1808
+ // - 多次元配列内はステップに対応するキーコードもしくはコード名を示す。カンマ区切りで複数指定できる。
1809
+ keyCtrl5_0: [[`Left`], [`Down`], [`Up`], [`Right`], [`Space`]],
1810
+ keyCtrl7_0: [[`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1811
+ keyCtrl7i_0: [[`Z`], [`X`], [`C`], [`Left`], [`Down`], [`Up`], [`Right`]],
1812
+ keyCtrl8_0: [[`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`], [`Enter`]],
1813
+ keyCtrl9A_0: [[`S`], [`D`], [`E`, `R`], [`F`], [`Space`], [`J`], [`K`], [`I`], [`L`]],
1814
+ keyCtrl9B_0: [[`A`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`], [`;`]],
1815
+ keyCtrl9i_0: [[`Left`], [`Down`], [`Up`], [`Right`], [`A`], [`S`], [`D`], [`F`], [`Space`]],
1816
+ keyCtrl11_0: [[`Left`], [`Down`], [`Up`], [`Right`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1817
+ keyCtrl11L_0: [[`W`], [`E`], [`D3`, `D4`], [`R`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1818
+ keyCtrl11W_0: [[`D1`, `D2`], [`T`], [`Y`], [`D0`, `Minus`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1819
+ keyCtrl11i_0: [[`S`], [`X`, `C`], [`D`], [`E`, `R`], [`F`], [`Space`], [`J`], [`M`, `Comma`], [`K`], [`I`, `O`], [`L`]],
1820
+ keyCtrl12_0: [[`U`], [`I`], [`D8`, `D9`], [`O`], [`Space`], [`N`], [`J`], [`M`], [`K`], [`Comma`], [`L`], [`Period`]],
1821
+ keyCtrl13_0: [[`Left`], [`Down`], [`Up`], [`Right`], [`S`], [`D`], [`E`, `R`], [`F`], [`Space`], [`J`], [`K`], [`I`], [`L`]],
1822
+ keyCtrl14_0: [[`T`, `Y`], [`U`], [`I`], [`D8`, `D7`, `D9`, `D0`], [`O`], [`BracketLeft`, `P`], [`Space`], [`N`], [`J`], [`M`], [`K`], [`Comma`], [`L`], [`Period`]],
1823
+ keyCtrl14i_0: [[`Z`, `W`], [`X`, `E`], [`C`, `R`], [`Left`], [`Down`], [`Up`], [`Right`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1824
+ keyCtrl15A_0: [[`W`], [`E`], [`D3`, `D4`], [`R`], [`Left`], [`Down`], [`Up`], [`Right`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1825
+ keyCtrl15B_0: [[`W`], [`E`], [`D3`, `D4`], [`R`], [`U`], [`I`], [`D8`, `D9`], [`O`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1826
+ keyCtrl16i_0: [[`Z`, `W`], [`X`, `E`], [`C`, `R`], [`Left`], [`Down`], [`Up`], [`Right`], [`A`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`], [`;`]],
1827
+ keyCtrl17_0: [[`A`], [`Z`], [`S`], [`X`], [`D`], [`C`], [`F`], [`V`], [`Space`], [`N`], [`J`], [`M`], [`K`], [`Comma`], [`L`], [`Period`], [`;`]],
1828
+ keyCtrl23_0: [[`W`], [`E`], [`D3`, `D4`], [`R`], [`U`], [`I`], [`D8`, `D9`], [`O`],
1829
+ [`Z`], [`S`], [`X`], [`D`], [`C`], [`F`], [`V`], [`Space`], [`N`], [`J`], [`M`], [`K`], [`Comma`], [`L`], [`Period`]],
1796
1830
 
1797
1831
  // 変則パターン (キーコンフィグ)
1798
1832
  // - _0 の数字部分をカウントアップすることで実現できる。
1799
- keyCtrl5_1: [[32], [37], [40], [38], [39]],
1800
- keyCtrl7_1: [[83], [69], [70], [32, 71, 72], [74], [73], [76]],
1801
- keyCtrl8_1: [[13], [83], [68], [70], [32], [74], [75], [76]],
1802
- keyCtrl9A_1: [[83], [68], [69, 82], [70], [32], [37], [40], [38], [39]],
1803
- keyCtrl9i_1: [[65], [83], [68], [70], [32], [37], [40], [38], [39]],
1804
- keyCtrl12_1: [[89], [85, 73], [56, 55, 57], [79], [32], [66], [72], [78, 77], [74, 75], [188], [76], [190]],
1805
- keyCtrl14_1: [[82, 84], [89], [85, 73], [56, 54, 55, 57, 48], [79], [192, 80], [32], [66], [72], [78, 77], [74, 75], [188], [76], [190]],
1806
- keyCtrl17_1: [[65], [83], [68], [70], [32], [74], [75], [76], [187], [90], [88], [67], [86], [78], [77], [188], [190]],
1833
+ keyCtrl5_1: [[`Space`], [`Left`], [`Down`], [`Up`], [`Right`]],
1834
+ keyCtrl7_1: [[`S`], [`E`], [`F`], [`Space`, `G`, `H`], [`J`], [`I`], [`L`]],
1835
+ keyCtrl8_1: [[`Enter`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`]],
1836
+ keyCtrl9A_1: [[`S`], [`D`], [`E`, `R`], [`F`], [`Space`], [`Left`], [`Down`], [`Up`], [`Right`]],
1837
+ keyCtrl9i_1: [[`A`], [`S`], [`D`], [`F`], [`Space`], [`Left`], [`Down`], [`Up`], [`Right`]],
1838
+ keyCtrl12_1: [[`Y`], [`U`, `I`], [`D8`, `D7`, `D9`], [`O`], [`Space`], [`B`], [`H`], [`N`, `M`], [`J`, `K`], [`Comma`], [`L`], [`Period`]],
1839
+ keyCtrl14_1: [[`R`, `T`], [`Y`], [`U`, `I`], [`D8`, `D6`, `D7`, `D9`, `D0`], [`O`], [`BracketLeft`, `P`], [`Space`], [`B`], [`H`], [`N`, `M`], [`J`, `K`], [`Comma`], [`L`], [`Period`]],
1840
+ keyCtrl17_1: [[`A`], [`S`], [`D`], [`F`], [`Space`], [`J`], [`K`], [`L`], [`;`], [`Z`], [`X`], [`C`], [`V`], [`N`], [`M`], [`Comma`], [`Period`]],
1807
1841
 
1808
- keyCtrl5_2: [[68], [70], [32], [74], [75]],
1809
- keyCtrl8_2: [[32], [78], [74], [77], [75], [188], [76], [190]],
1810
- keyCtrl12_2: [[87], [69], [51, 52], [82], [16], [90], [83], [88], [68], [67], [70], [86]],
1811
- keyCtrl14_2: [[9, 81], [87], [69], [51, 50, 52, 53], [82], [89, 84], [16], [90], [83], [88], [68], [67], [70], [86]],
1842
+ keyCtrl5_2: [[`D`], [`F`], [`Space`], [`J`], [`K`]],
1843
+ keyCtrl8_2: [[`Space`], [`N`], [`J`], [`M`], [`K`], [`Comma`], [`L`], [`Period`]],
1844
+ keyCtrl12_2: [[`W`], [`E`], [`D3`, `D4`], [`R`], [`Shift`], [`Z`], [`S`], [`X`], [`D`], [`C`], [`F`], [`V`]],
1845
+ keyCtrl14_2: [[`Tab`, `Q`], [`W`], [`E`], [`D3`, `D2`, `D4`, `D5`], [`R`], [`Y`, `T`], [`Shift`], [`Z`], [`S`], [`X`], [`D`], [`C`], [`F`], [`V`]],
1812
1846
 
1813
- keyCtrl8_3: [[32], [66], [72], [78, 77], [74, 75], [188], [76], [190]],
1814
- keyCtrl12_3: [[87], [69, 82], [51, 52, 53], [84], [16], [90], [83], [88, 67], [68, 70], [86], [71], [66]],
1815
- keyCtrl14_3: [[9, 81], [87], [69, 82], [51, 50, 52, 53, 54], [84], [85, 89], [16], [90], [83], [88, 67], [68, 70], [86], [71], [66]],
1847
+ keyCtrl8_3: [[`Space`], [`B`], [`H`], [`N`, `M`], [`J`, `K`], [`Comma`], [`L`], [`Period`]],
1848
+ keyCtrl12_3: [[`W`], [`E`, `R`], [`D3`, `D4`, `D5`], [`T`], [`Shift`], [`Z`], [`S`], [`X`, `C`], [`D`, `F`], [`V`], [`G`], [`B`]],
1849
+ keyCtrl14_3: [[`Tab`, `Q`], [`W`], [`E`, `R`], [`D3`, `D2`, `D4`, `D5`, `D6`], [`T`], [`U`, `Y`], [`Shift`], [`Z`], [`S`], [`X`, `C`], [`D`, `F`], [`V`], [`G`], [`B`]],
1816
1850
 
1817
- keyCtrl8_4: [[16], [90], [83], [88], [68], [67], [70], [86]],
1851
+ keyCtrl8_4: [[`Shift`], [`Z`], [`S`], [`X`], [`D`], [`C`], [`F`], [`V`]],
1818
1852
 
1819
- keyCtrl8_5: [[16], [90], [83], [88, 67], [68, 70], [86], [71], [66]],
1853
+ keyCtrl8_5: [[`Shift`], [`Z`], [`S`], [`X`, `C`], [`D`, `F`], [`V`], [`G`], [`B`]],
1820
1854
 
1821
1855
  // 矢印間隔補正
1822
1856
  blank: 55,
@@ -2119,6 +2153,10 @@ Object.keys(g_keyObj).filter(val => val.startsWith(`chara`) &&
2119
2153
  setKeyDfVal(charaPtn.slice(`chara`.length));
2120
2154
  });
2121
2155
 
2156
+ // キー名をキーコードに変換
2157
+ Object.keys(g_keyObj).filter(val => val.startsWith(`keyCtrl`)).forEach(property =>
2158
+ g_keyObj[property].forEach((list, j) => g_keyObj[property][j] = list.map(valN => getKeyCtrlVal(valN))));
2159
+
2122
2160
  // キーパターンのコピー処理
2123
2161
  // ただし、すでに定義済みの場合は定義済みのものを優先する
2124
2162
  Object.keys(g_copyKeyPtn).forEach(keyPtnTo => {
@@ -2337,37 +2375,6 @@ const g_dfColorBaseObj = {
2337
2375
  },
2338
2376
  };
2339
2377
 
2340
- /**
2341
- * 特殊文字列の置き換えリスト
2342
- * (置き換え元、置き換え先の組で二次元配列として定義。主にreplaceStr関数で使用)
2343
- */
2344
- const g_escapeStr = {
2345
- escape: [[`&`, `&amp;`], [`<`, `&lt;`], [`>`, `&gt;`], [`"`, `&quot;`]],
2346
- escapeTag: [
2347
- [`*amp*`, `&amp;`], [`*pipe*`, `|`], [`*dollar*`, `$`], [`*rsquo*`, `&rsquo;`],
2348
- [`*quot*`, `&quot;`], [`*comma*`, `&sbquo;`], [`*squo*`, `&#39;`], [`*bkquo*`, `&#96;`],
2349
- [`*lt*`, `&lt;`], [`*gt*`, `&gt;`], [`*lbrace*`, `{`], [`*rbrace*`, `}`],
2350
- ],
2351
- unEscapeTag: [
2352
- [`&amp;`, `&`], [`&rsquo;`, `’`], [`&quot;`, `"`], [`&sbquo;`, `,`],
2353
- [`&lt;`, `<`], [`&gt;`, `>`], [`&#39;`, `'`], [`&#96;`, `\``],
2354
- ],
2355
- escapeCode: [
2356
- [`<script>`, ``], [`</script>`, ``],
2357
- ],
2358
- musicNameSimple: [
2359
- [`<br>`, ` `], [`<nbr>`, ``], [`<dbr>`, ` `],
2360
- ],
2361
- musicNameMultiLine: [
2362
- [`<nbr>`, `<br>`], [`<dbr>`, `<br>`],
2363
- ],
2364
- frzName: [
2365
- [`leftdia`, `frzLdia`], [`rightdia`, `frzRdia`],
2366
- [`left`, `frzLeft`], [`down`, `frzDown`], [`up`, `frzUp`], [`right`, `frzRight`],
2367
- [`space`, `frzSpace`], [`iyo`, `frzIyo`], [`gor`, `frzGor`], [`oni`, `foni`],
2368
- ],
2369
- };
2370
-
2371
2378
  /**
2372
2379
  * 文字列部分一致用リスト
2373
2380
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "31.3.1",
3
+ "version": "31.4.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {