danoniplus 19.5.14 → 24.6.4

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.
Files changed (69) hide show
  1. package/README.md +12 -13
  2. package/css/danoni_main.css +6 -1
  3. package/danoni/dTemplate.html +2 -6
  4. package/danoni/danoni0.html +51 -3
  5. package/danoni/danoni1.html +36 -36
  6. package/danoni/danoni2.html +2 -2
  7. package/danoni/danoni3.html +20 -20
  8. package/danoni/danoni4_skin.html +2 -2
  9. package/img/classic/aaShadow.png +0 -0
  10. package/img/classic/arrow.png +0 -0
  11. package/img/classic/arrowShadow.png +0 -0
  12. package/img/classic/borderline.png +0 -0
  13. package/img/classic/c.png +0 -0
  14. package/img/classic/cursor.png +0 -0
  15. package/img/classic/frzbar.png +0 -0
  16. package/img/classic/giko.png +0 -0
  17. package/img/classic/iyo.png +0 -0
  18. package/img/classic/monar.png +0 -0
  19. package/img/classic/morara.png +0 -0
  20. package/img/classic/onigiri.png +0 -0
  21. package/img/{aaShadow.png → classic-thin/aaShadow.png} +0 -0
  22. package/img/{borderline.png → classic-thin/borderline.png} +0 -0
  23. package/img/{c.png → classic-thin/c.png} +0 -0
  24. package/img/{cursor.png → classic-thin/cursor.png} +0 -0
  25. package/img/{frzbar.png → classic-thin/frzbar.png} +0 -0
  26. package/img/{giko.png → classic-thin/giko.png} +0 -0
  27. package/img/{iyo.png → classic-thin/iyo.png} +0 -0
  28. package/img/{monar.png → classic-thin/monar.png} +0 -0
  29. package/img/{morara.png → classic-thin/morara.png} +0 -0
  30. package/img/{onigiri.png → classic-thin/onigiri.png} +0 -0
  31. package/img/imgbase/aaShadow.ai +1912 -5
  32. package/img/imgbase/arrow.ai +1376 -6
  33. package/img/imgbase/arrowShadow.ai +1349 -2
  34. package/img/imgbase/arrowShadow_classic.ai +1395 -3
  35. package/img/imgbase/borderline.ai +1388 -3
  36. package/img/imgbase/c.ai +1372 -1
  37. package/img/imgbase/cursor.ai +1978 -2
  38. package/img/imgbase/frzbar.ai +1351 -2
  39. package/img/imgbase/giko.ai +1404 -3
  40. package/img/imgbase/iyo.ai +1381 -7
  41. package/img/imgbase/monar.ai +1393 -1
  42. package/img/imgbase/morara.ai +1418 -2
  43. package/img/imgbase/onigiri.ai +1418 -1
  44. package/img/note/aaShadow.svg +6 -0
  45. package/img/note/arrow.svg +6 -0
  46. package/img/note/arrowShadow.svg +6 -0
  47. package/img/note/borderline.svg +1 -0
  48. package/img/note/c.svg +6 -0
  49. package/img/note/cursor.svg +1 -0
  50. package/img/note/frzbar.svg +1 -0
  51. package/img/note/giko.svg +6 -0
  52. package/img/note/iyo.svg +6 -0
  53. package/img/note/monar.svg +6 -0
  54. package/img/note/morara.svg +6 -0
  55. package/img/note/onigiri.svg +6 -0
  56. package/js/danoni_main.js +2603 -2110
  57. package/js/lib/danoni_constants.js +1254 -472
  58. package/js/lib/danoni_legacy_function.js +177 -1
  59. package/js/sample/danoni_custom-003.js +42 -58
  60. package/js/template/danoni_setting.js +48 -1
  61. package/jsconfig.json +1 -1
  62. package/package.json +1 -1
  63. package/skin/danoni_skin_default.css +8 -1
  64. package/skin/danoni_skin_light.css +8 -1
  65. package/skin/danoni_skin_light.js +0 -13
  66. package/skin/danoni_skin_skyblue.css +8 -1
  67. package/skin/danoni_skin_skyblue.js +0 -13
  68. package/img/arrow.png +0 -0
  69. package/img/arrowShadow.png +0 -0
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2021/09/24 (v19.5.10)
8
+ * Revised : 2022/01/26 (v24.6.2)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -27,15 +27,27 @@ const C_LBL_LNKSIZE = 16;
27
27
  const C_LBL_BASICFONT = `"Meiryo UI", sans-serif`;
28
28
 
29
29
  const C_BTN_HEIGHT = 50;
30
- const C_LNK_HEIGHT = 20;
30
+ const C_LNK_HEIGHT = 30;
31
31
 
32
32
  // スプライト(ムービークリップ相当)のルート
33
33
  const C_SPRITE_ROOT = `divRoot`;
34
34
 
35
+ /**
36
+ * ロケール管理
37
+ */
38
+ const g_localeObj = {
39
+ val: `Ja`,
40
+ list: [`Ja`, `En`],
41
+ num: 0,
42
+ };
43
+
35
44
  const g_userAgent = window.navigator.userAgent.toLowerCase(); // msie, edge, chrome, safari, firefox, opera
36
45
  const g_isIos = listMatching(g_userAgent, [`iphone`, `ipad`, `ipod`]);
37
46
  const g_isMac = listMatching(g_userAgent, [`iphone`, `ipad`, `ipod`, `mac os`]);
38
47
 
48
+ const g_isFile = location.href.match(/^file/);
49
+ const g_isLocal = location.href.match(/^file/) || location.href.indexOf(`localhost`) !== -1;
50
+
39
51
  // 変数型
40
52
  const C_TYP_BOOLEAN = `boolean`;
41
53
  const C_TYP_NUMBER = `number`;
@@ -46,6 +58,8 @@ const C_TYP_FUNCTION = `function`;
46
58
  const C_TYP_SWITCH = `switch`;
47
59
  const C_TYP_CALC = `calc`;
48
60
 
61
+ const g_imgObj = {};
62
+
49
63
  // 画像ファイル
50
64
  let C_IMG_ARROW = `../img/arrow.svg`;
51
65
  let C_IMG_ARROWSD = `../img/arrowShadow.svg`;
@@ -78,50 +92,98 @@ const C_DIR_SKIN = `../skin/`;
78
92
  // カレントディレクトリマーク
79
93
  const C_MRK_CURRENT_DIRECTORY = `(..)`;
80
94
 
81
- const g_imgObj = {
82
- arrow: C_IMG_ARROW,
83
- arrowShadow: C_IMG_ARROWSD,
84
- onigiri: C_IMG_ONIGIRI,
85
- onigiriShadow: C_IMG_AASD,
86
- giko: C_IMG_GIKO,
87
- gikoShadow: C_IMG_AASD,
88
- iyo: C_IMG_IYO,
89
- iyoShadow: C_IMG_AASD,
90
- c: C_IMG_C,
91
- cShadow: C_IMG_AASD,
92
- morara: C_IMG_MORARA,
93
- moraraShadow: C_IMG_AASD,
94
- monar: C_IMG_MONAR,
95
- monarShadow: C_IMG_AASD,
96
-
97
- arrowStep: C_IMG_ARROW,
98
- arrowShadowStep: C_IMG_ARROWSD,
99
- onigiriStep: C_IMG_ONIGIRI,
100
- onigiriShadowStep: C_IMG_AASD,
101
- gikoStep: C_IMG_GIKO,
102
- gikoShadowStep: C_IMG_AASD,
103
- iyoStep: C_IMG_IYO,
104
- iyoShadowStep: C_IMG_AASD,
105
- cStep: C_IMG_C,
106
- cShadowStep: C_IMG_AASD,
107
- moraraStep: C_IMG_MORARA,
108
- moraraShadowStep: C_IMG_AASD,
109
- monarStep: C_IMG_MONAR,
110
- monarShadowStep: C_IMG_AASD,
111
-
112
- arrowStepHit: C_IMG_ARROW,
113
- onigiriStepHit: C_IMG_ONIGIRI,
114
- gikoStepHit: C_IMG_GIKO,
115
- iyoStepHit: C_IMG_IYO,
116
- cStepHit: C_IMG_C,
117
- moraraStepHit: C_IMG_MORARA,
118
- monarStepHit: C_IMG_MONAR,
119
-
120
- cursor: C_IMG_CURSOR,
121
- frzBar: C_IMG_FRZBAR,
122
- lifeBar: C_IMG_LIFEBAR,
123
- lifeBorder: C_IMG_LIFEBORDER,
95
+ /**
96
+ * カスタム画像セットの設定(サーバ上の場合のみ有効)
97
+ *
98
+ * 用途としては、StepRtnにて既定種以外のオブジェクトを指定するときに使用することを想定
99
+ * 例:stepRtn7i_0: [`giko2`, `onigiri`, `iyo`, 0, -90, 90, 180],
100
+ * この場合は、`giko2`について giko2.svg(png), giko2Shadow.svg, giko2StepHit.svg というファイルを
101
+ * 個別にimgフォルダに入れておくことで使用できるようにする(現状、回転には非対応)
102
+ *
103
+ * @param {string} _name 追加するオブジェクト種の名前
104
+ * @param {string} _baseDir ベースディレクトリ
105
+ * @param {string} _exp 拡張子
106
+ */
107
+ const reloadImgCustomObj = (_name, _baseDir = ``, _exp = `svg`) => {
108
+ const baseDir = (_baseDir === `` ? `` : `${_baseDir}/`);
109
+ g_imgObj[_name] = `../img/${baseDir}${_name}.${_exp}`;
110
+ g_imgObj[`${_name}Shadow`] = `../img/${baseDir}${_name}Shadow.${_exp}`;
111
+ g_imgObj[`${_name}Step`] = `../img/${baseDir}${_name}.${_exp}`;
112
+ g_imgObj[`${_name}StepHit`] = `../img/${baseDir}${_name}StepHit.${_exp}`;
113
+ };
114
+
115
+ /**
116
+ * 画像セットのリセット処理(サーバ上の場合のみ有効)
117
+ * 下記のreloadImgObjとセットで使用して有効になる
118
+ * @param {string} _baseDir
119
+ * @param {string} _exp
120
+ */
121
+ const resetImgs = (_baseDir = ``, _exp = `svg`) => {
122
+ const baseDir = (_baseDir === `` ? `` : `${_baseDir}/`);
123
+ C_IMG_ARROW = `../img/${baseDir}arrow.${_exp}`;
124
+ C_IMG_ARROWSD = `../img/${baseDir}arrowShadow.${_exp}`;
125
+ C_IMG_ONIGIRI = `../img/${baseDir}onigiri.${_exp}`;
126
+ C_IMG_AASD = `../img/${baseDir}aaShadow.${_exp}`;
127
+ C_IMG_GIKO = `../img/${baseDir}giko.${_exp}`;
128
+ C_IMG_IYO = `../img/${baseDir}iyo.${_exp}`;
129
+ C_IMG_C = `../img/${baseDir}c.${_exp}`;
130
+ C_IMG_MORARA = `../img/${baseDir}morara.${_exp}`;
131
+ C_IMG_MONAR = `../img/${baseDir}monar.${_exp}`;
132
+ C_IMG_CURSOR = `../img/${baseDir}cursor.${_exp}`;
133
+ C_IMG_FRZBAR = `../img/${baseDir}frzbar.${_exp}`;
134
+ C_IMG_LIFEBAR = `../img/${baseDir}frzbar.${_exp}`;
135
+ C_IMG_LIFEBORDER = `../img/${baseDir}borderline.${_exp}`;
136
+
137
+ if (typeof g_presetCustomImageList === C_TYP_OBJECT) {
138
+ g_presetCustomImageList.forEach(image => reloadImgCustomObj(image, _baseDir, _exp));
139
+ }
140
+ }
141
+
142
+ const reloadImgObj = _ => {
143
+ g_imgObj.arrow = C_IMG_ARROW;
144
+ g_imgObj.arrowShadow = C_IMG_ARROWSD;
145
+ g_imgObj.onigiri = C_IMG_ONIGIRI;
146
+ g_imgObj.onigiriShadow = C_IMG_AASD;
147
+ g_imgObj.giko = C_IMG_GIKO;
148
+ g_imgObj.gikoShadow = C_IMG_AASD;
149
+ g_imgObj.iyo = C_IMG_IYO;
150
+ g_imgObj.iyoShadow = C_IMG_AASD;
151
+ g_imgObj.c = C_IMG_C;
152
+ g_imgObj.cShadow = C_IMG_AASD;
153
+ g_imgObj.morara = C_IMG_MORARA;
154
+ g_imgObj.moraraShadow = C_IMG_AASD;
155
+ g_imgObj.monar = C_IMG_MONAR;
156
+ g_imgObj.monarShadow = C_IMG_AASD;
157
+
158
+ g_imgObj.arrowStep = C_IMG_ARROW;
159
+ g_imgObj.arrowShadowStep = C_IMG_ARROWSD;
160
+ g_imgObj.onigiriStep = C_IMG_ONIGIRI;
161
+ g_imgObj.onigiriShadowStep = C_IMG_AASD;
162
+ g_imgObj.gikoStep = C_IMG_GIKO;
163
+ g_imgObj.gikoShadowStep = C_IMG_AASD;
164
+ g_imgObj.iyoStep = C_IMG_IYO;
165
+ g_imgObj.iyoShadowStep = C_IMG_AASD;
166
+ g_imgObj.cStep = C_IMG_C;
167
+ g_imgObj.cShadowStep = C_IMG_AASD;
168
+ g_imgObj.moraraStep = C_IMG_MORARA;
169
+ g_imgObj.moraraShadowStep = C_IMG_AASD;
170
+ g_imgObj.monarStep = C_IMG_MONAR;
171
+ g_imgObj.monarShadowStep = C_IMG_AASD;
172
+
173
+ g_imgObj.arrowStepHit = C_IMG_ARROW;
174
+ g_imgObj.onigiriStepHit = C_IMG_ONIGIRI;
175
+ g_imgObj.gikoStepHit = C_IMG_GIKO;
176
+ g_imgObj.iyoStepHit = C_IMG_IYO;
177
+ g_imgObj.cStepHit = C_IMG_C;
178
+ g_imgObj.moraraStepHit = C_IMG_MORARA;
179
+ g_imgObj.monarStepHit = C_IMG_MONAR;
180
+
181
+ g_imgObj.cursor = C_IMG_CURSOR;
182
+ g_imgObj.frzBar = C_IMG_FRZBAR;
183
+ g_imgObj.lifeBar = C_IMG_LIFEBAR;
184
+ g_imgObj.lifeBorder = C_IMG_LIFEBORDER;
124
185
  };
186
+ reloadImgObj();
125
187
 
126
188
  // g_imgObjのうち、初期読込するリスト
127
189
  const g_imgInitList = [
@@ -164,6 +226,7 @@ const C_BLOCK_KEYS = [
164
226
  const C_LEN_SETLBL_LEFT = 160;
165
227
  const C_LEN_SETLBL_WIDTH = 210;
166
228
  const C_LEN_DIFSELECTOR_WIDTH = 250;
229
+ const C_LEN_DIFCOVER_WIDTH = 110;
167
230
  const C_LEN_SETLBL_HEIGHT = 23;
168
231
  const C_SIZ_SETLBL = 17;
169
232
  const C_LEN_SETDIFLBL_HEIGHT = 25;
@@ -172,6 +235,7 @@ const C_LEN_SETMINI_WIDTH = 40;
172
235
  const C_SIZ_SETMINI = 18;
173
236
  const C_SIZ_DIFSELECTOR = 14;
174
237
  const C_SIZ_MAIN = 14;
238
+ const C_SIZ_MUSIC_TITLE = 13;
175
239
 
176
240
  const C_LEN_GRAPH_WIDTH = 286;
177
241
  const C_LEN_GRAPH_HEIGHT = 226;
@@ -181,21 +245,37 @@ const C_CLR_DENSITY_MAX = `#990000cc`;
181
245
  const C_CLR_DENSITY_DEFAULT = `#999999cc`;
182
246
  const C_LEN_DENSITY_DIVISION = 16;
183
247
 
184
- const C_LBL_SETMINIL = `<`;
185
- const C_LEN_SETMINIL_LEFT = C_LEN_SETLBL_LEFT - C_LEN_SETMINI_WIDTH;
186
- const C_LBL_SETMINILL = `<`;
187
- const C_LEN_SETMINILL_LEFT = C_LEN_SETMINIL_LEFT + C_LEN_SETMINI_WIDTH;
188
- const C_LBL_SETMINIR = `>`;
189
- const C_LBL_SETMINIRR = `>`;
190
- const C_LEN_SETMINIR_LEFT = C_LEN_SETLBL_LEFT + C_LEN_SETLBL_WIDTH;
191
- const C_LEN_SETMINIRR_LEFT = C_LEN_SETMINIR_LEFT - C_LEN_SETMINI_WIDTH;
248
+ const g_settingBtnObj = {
249
+ chara: {
250
+ L: `<`,
251
+ LL: `<`,
252
+ LLL: `-`,
253
+ HL: ``,
254
+ R: `>`,
255
+ RR: `>`,
256
+ RRR: `+`,
257
+ HR: ``,
258
+ D: `↓`,
259
+ U: `↑`,
260
+ },
261
+ pos: {
262
+ L: C_LEN_SETLBL_LEFT - C_LEN_SETMINI_WIDTH,
263
+ LL: C_LEN_SETLBL_LEFT,
264
+ LLL: C_LEN_SETLBL_LEFT + C_LEN_SETMINI_WIDTH + 1,
265
+ HL: C_LEN_SETLBL_LEFT,
266
+ R: C_LEN_SETLBL_LEFT + C_LEN_SETLBL_WIDTH,
267
+ RR: C_LEN_SETLBL_LEFT + C_LEN_SETLBL_WIDTH - C_LEN_SETMINI_WIDTH,
268
+ RRR: C_LEN_SETLBL_LEFT + C_LEN_SETLBL_WIDTH - C_LEN_SETMINI_WIDTH * 3 / 2 - 1,
269
+ HR: C_LEN_SETLBL_LEFT + C_LEN_SETLBL_WIDTH - C_LEN_SETMINI_WIDTH,
270
+ }
271
+ };
192
272
 
193
273
  const C_MAX_ADJUSTMENT = 30;
194
274
  const C_MAX_SPEED = 10;
195
275
  const C_MIN_SPEED = 1;
196
276
 
197
- const C_KYC_HEIGHT = 150;
198
- const C_KYC_REPHEIGHT = 20;
277
+ const C_KYC_HEIGHT = 145;
278
+ const C_KYC_REPHEIGHT = 16;
199
279
 
200
280
  const C_FRM_AFTERFADE = 420;
201
281
  const C_FRM_FRZATTEMPT = 5;
@@ -209,15 +289,10 @@ const g_judgObj = {
209
289
  arrowJ: [2, 4, 6, 8, 8],
210
290
  frzJ: [2, 4, 8]
211
291
  };
212
- const C_JDG_II = 0;
213
- const C_JDG_SHAKIN = 1;
214
- const C_JDG_MATARI = 2;
215
- const C_JDG_SHOBON = 3;
216
- const C_JDG_UWAN = 4;
217
-
218
- const C_JDG_KITA = 0;
219
- const C_JDG_SFSF = 1;
220
- const C_JDG_IKNAI = 2;
292
+ const g_judgPosObj = {
293
+ ii: 0, shakin: 1, matari: 2, shobon: 3, uwan: 4,
294
+ kita: 0, sfsf: 1, iknai: 2,
295
+ };
221
296
 
222
297
  const C_CLR_DUMMY = `#777777`;
223
298
 
@@ -267,8 +342,10 @@ const g_rankObj = {
267
342
  rankRate: [97, 90, 85, 80, 75, 70, 50, 0],
268
343
  rankColor: [`#00ccff`, `#6600ff`, `#ff9900`, `#ff0000`, `#00ff00`, `#ff00ff`, `#cc00ff`, `#cc9933`],
269
344
 
270
- rankMarkPF: `PF`,
271
- rankColorPF: `#cccc00`,
345
+ rankMarkAllPerfect: `AP`,
346
+ rankColorAllPerfect: ``,
347
+ rankMarkPerfect: `PF`,
348
+ rankColorPerfect: `#cccc00`,
272
349
  rankMarkC: `C`,
273
350
  rankColorC: `#cc9933`,
274
351
  rankMarkF: `F`,
@@ -291,6 +368,7 @@ let C_WOD_FRAME = 30;
291
368
 
292
369
  // 譜面データ持ち回り用
293
370
  const g_stateObj = {
371
+ dosDivideFlg: false,
294
372
  scoreLockFlg: false,
295
373
  scoreId: 0,
296
374
  dummyId: ``,
@@ -311,6 +389,7 @@ const g_stateObj = {
311
389
  lifeBorder: 70,
312
390
  lifeInit: 25,
313
391
  lifeVariable: C_FLG_OFF,
392
+ filterKeys: ``,
314
393
 
315
394
  extraKeyFlg: false,
316
395
  dataSaveFlg: true,
@@ -332,7 +411,11 @@ const g_stateObj = {
332
411
  d_background: C_FLG_ON,
333
412
  d_special: C_FLG_ON,
334
413
  appearance: `Visible`,
414
+ filterLock: C_FLG_OFF,
335
415
  opacity: 100,
416
+
417
+ rotateEnabled: true,
418
+ flatStepHeight: C_ARW_WIDTH,
336
419
  };
337
420
 
338
421
  const C_VAL_MAXLIFE = 1000;
@@ -340,57 +423,118 @@ let C_CLR_BORDER = `#555555`;
340
423
  const C_LFE_SURVIVAL = `Survival`;
341
424
  const C_LFE_BORDER = `Border`;
342
425
  const C_LFE_CUSTOM = `Custom`;
426
+ const C_LFE_MAXLIFE = `maxLife`;
343
427
 
344
- let g_gaugeOptionObj = {};
428
+ /**
429
+ * ゲージ初期設定
430
+ */
431
+ const g_gaugeOptionObj = {
432
+ survival: [`Original`, `Heavy`, `NoRecovery`, `SuddenDeath`, `Practice`, `Light`],
433
+ border: [`Normal`, `Hard`, `SuddenDeath`, `Easy`],
434
+ custom: [],
435
+ customDefault: [],
436
+ customFulls: {},
437
+
438
+ initSurvival: [25, 50, 100, 100, 50, 25],
439
+ rcvSurvival: [6, 2, 0, 0, 0, 12],
440
+ dmgSurvival: [40, 50, 50, C_LFE_MAXLIFE, 0, 40],
441
+ typeSurvival: [C_LFE_SURVIVAL, C_LFE_SURVIVAL, C_LFE_SURVIVAL, C_LFE_SURVIVAL, C_LFE_SURVIVAL, C_LFE_SURVIVAL],
442
+ varSurvival: [C_FLG_OFF, C_FLG_OFF, C_FLG_OFF, C_FLG_OFF, C_FLG_OFF, C_FLG_OFF],
443
+ clearSurvival: [0, 0, 0, 0, 0, 0],
444
+
445
+ initBorder: [25, 100, 100, 25],
446
+ rcvBorder: [2, 1, 0, 4],
447
+ dmgBorder: [7, 50, C_LFE_MAXLIFE, 7],
448
+ typeBorder: [C_LFE_BORDER, C_LFE_BORDER, C_LFE_SURVIVAL, C_LFE_BORDER],
449
+ varBorder: [C_FLG_ON, C_FLG_ON, C_FLG_OFF, C_FLG_ON],
450
+ clearBorder: [70, 0, 0, 70],
451
+
452
+ varCustom: [],
453
+ varCustomDefault: [],
454
+ defaultList: [`survival`, `border`],
455
+ defaultPlusList: [`survival`, `border`, `customDefault`],
456
+ };
345
457
  let g_gaugeType;
346
458
 
347
- let g_speeds = [...Array((C_MAX_SPEED - C_MIN_SPEED) * 4 + 1).keys()].map(i => C_MIN_SPEED + i / 4);
348
- let g_speedNum = 0;
459
+ const g_autoPlaysBase = [C_FLG_OFF, C_FLG_ALL];
349
460
 
350
- let g_motions = [C_FLG_OFF, `Boost`, `Brake`];
351
- let g_motionNum = 0;
461
+ let g_appearanceRanges = [`Hidden+`, `Sudden+`, `Hid&Sud+`];
352
462
 
353
- let g_reverses = [C_FLG_OFF, C_FLG_ON];
354
- let g_reverseNum = 0;
463
+ // 設定系全般管理
464
+ const g_settings = {
465
+ speeds: [...Array((C_MAX_SPEED - C_MIN_SPEED) * 20 + 1).keys()].map(i => C_MIN_SPEED + i / 20),
466
+ speedNum: 0,
355
467
 
356
- let g_scrolls = [];
357
- let g_scrollNum = 0;
468
+ motions: [C_FLG_OFF, `Boost`, `Brake`],
469
+ motionNum: 0,
358
470
 
359
- let g_shuffles = [C_FLG_OFF, `Mirror`, `Random`, `Random+`, `S-Random`, `S-Random+`];
360
- let g_shuffleNum = 0;
471
+ reverses: [C_FLG_OFF, C_FLG_ON],
472
+ reverseNum: 0,
361
473
 
362
- let g_gauges = [];
363
- let g_gaugeNum = 0;
474
+ scrolls: [],
475
+ scrollNum: 0,
364
476
 
365
- let g_autoPlays = [C_FLG_OFF, C_FLG_ALL];
366
- const g_autoPlaysBase = [C_FLG_OFF, C_FLG_ALL];
367
- let g_autoPlayNum = 0;
477
+ shuffles: [C_FLG_OFF, `Mirror`, `Asym-Mirror`, `Random`, `Random+`, `S-Random`, `S-Random+`],
478
+ shuffleNum: 0,
368
479
 
369
- let g_adjustments = [...Array(C_MAX_ADJUSTMENT * 2 + 1).keys()].map(i => i - C_MAX_ADJUSTMENT);
370
- let g_adjustmentNum = C_MAX_ADJUSTMENT;
480
+ gauges: [],
481
+ gaugeNum: 0,
371
482
 
372
- let g_volumes = [0, 0.5, 1, 2, 5, 10, 25, 50, 75, 100];
373
- let g_volumeNum = g_volumes.length - 1;
483
+ autoPlays: [C_FLG_OFF, C_FLG_ALL],
484
+ autoPlayNum: 0,
374
485
 
375
- let g_appearances = [`Visible`, `Hidden`, `Hidden+`, `Sudden`, `Sudden+`, `Hid&Sud+`];
376
- let g_appearanceNum = 0;
486
+ adjustments: [...Array(C_MAX_ADJUSTMENT * 20 + 1).keys()].map(i => (i - C_MAX_ADJUSTMENT * 10) / 10),
487
+ adjustmentNum: C_MAX_ADJUSTMENT * 10,
377
488
 
378
- let g_appearanceRanges = [`Hidden+`, `Sudden+`, `Hid&Sud+`];
489
+ volumes: [0, 0.5, 1, 2, 5, 10, 25, 50, 75, 100],
490
+
491
+ appearances: [`Visible`, `Hidden`, `Hidden+`, `Sudden`, `Sudden+`, `Hid&Sud+`],
492
+ appearanceNum: 0,
493
+
494
+ filterLocks: [C_FLG_OFF, C_FLG_ON],
495
+ filterLockNum: 0,
496
+
497
+ opacitys: [10, 25, 50, 75, 100],
498
+
499
+ scoreDetails: [`Speed`, `Density`, `ToolDif`],
500
+ scoreDetailNum: 0,
501
+ };
379
502
 
380
- let g_opacitys = [10, 25, 50, 75, 100];
381
- let g_opacityNum = g_opacitys.length - 1;
503
+ g_settings.volumeNum = g_settings.volumes.length - 1;
504
+ g_settings.opacityNum = g_settings.opacitys.length - 1;
382
505
 
383
- let g_scoreDetails = [`Speed`, `Density`, `ToolDif`];
384
- let g_scoreDetailNum = 0;
506
+ /**
507
+ * シャッフル適用関数
508
+ */
509
+ const g_shuffleFunc = {
510
+ 'OFF': _ => true,
511
+ 'Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup),
512
+ 'Asym-Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup, true),
513
+ 'Random': (keyNum, shuffleGroup) => applyRandom(keyNum, shuffleGroup),
514
+ 'Random+': keyNum => applyRandom(keyNum, [[...Array(keyNum).keys()]]),
515
+ 'S-Random': (keyNum, shuffleGroup) => {
516
+ applySRandom(keyNum, shuffleGroup, `arrow`, `frz`);
517
+ applySRandom(keyNum, shuffleGroup, `dummyArrow`, `dummyFrz`);
518
+ },
519
+ 'S-Random+': keyNum => {
520
+ applySRandom(keyNum, [[...Array(keyNum).keys()]], `arrow`, `frz`);
521
+ applySRandom(keyNum, [[...Array(keyNum).keys()]], `dummyArrow`, `dummyFrz`);
522
+ },
523
+ };
385
524
 
386
- let g_keycons = {
525
+ const g_keycons = {
387
526
  configTypes: [`Main`, `Replaced`, `ALL`],
388
- configFunc: [resetCursorMain, resetCursorReplaced, resetCursorALL],
389
527
  configTypeNum: 0,
390
528
 
391
- colorTypes: [`Default`, `Type0`, `Type1`, `Type2`],
392
- colorDefs: [C_FLG_ON, C_FLG_ON, C_FLG_OFF, C_FLG_OFF],
529
+ colorTypes: [`Default`, `Type0`, `Type1`, `Type2`, `Type3`, `Type4`],
530
+ colorDefs: [C_FLG_ON, C_FLG_ON, C_FLG_OFF, C_FLG_OFF, C_FLG_OFF, C_FLG_OFF],
393
531
  colorTypeNum: 0,
532
+
533
+ imgTypes: [],
534
+ imgTypeNum: 0,
535
+
536
+ colorGroupNum: 0,
537
+ shuffleGroupNum: 0,
394
538
  };
395
539
 
396
540
  let g_displays = [`stepZone`, `judgment`, `fastSlow`, `lifeGauge`, `score`, `musicInfo`, `filterLine`,
@@ -407,67 +551,39 @@ let g_sHeight;
407
551
 
408
552
  const g_hidSudObj = {
409
553
  filterPos: 10,
410
- pgDown: {},
411
- pgUp: {},
412
- std: {},
413
- filterPosDefault: {},
414
- };
415
- g_hidSudObj[`Visible`] = 1;
416
- g_hidSudObj[`Hidden`] = 0;
417
- g_hidSudObj[`Hidden+`] = 0;
418
- g_hidSudObj[`Sudden`] = 1;
419
- g_hidSudObj[`Sudden+`] = 1;
420
- g_hidSudObj[`Hid&Sud+`] = 1;
421
-
422
- g_hidSudObj.filterPosDefault[`Visible`] = 0;
423
- g_hidSudObj.filterPosDefault[`Hidden`] = 50;
424
- g_hidSudObj.filterPosDefault[`Sudden`] = 40;
425
- g_hidSudObj.pgDown[`Hidden+`] = {
426
- OFF: `PageDown`,
427
- ON: `PageUp`,
428
- };
429
- g_hidSudObj.pgDown[`Sudden+`] = {
430
- OFF: `PageUp`,
431
- ON: `PageDown`,
432
- }
433
- g_hidSudObj.pgDown[`Hid&Sud+`] = {
434
- OFF: `PageUp`,
435
- ON: `PageDown`,
436
- }
437
- g_hidSudObj.pgUp[`Hidden+`] = {
438
- OFF: `PageUp`,
439
- ON: `PageDown`,
440
- }
441
- g_hidSudObj.pgUp[`Sudden+`] = {
442
- OFF: `PageDown`,
443
- ON: `PageUp`,
444
- }
445
- g_hidSudObj.pgUp[`Hid&Sud+`] = {
446
- OFF: `PageDown`,
447
- ON: `PageUp`,
448
- }
449
- g_hidSudObj.std[`Hidden+`] = {
450
- OFF: 0,
451
- ON: 1,
554
+
555
+ 'Visible': 1,
556
+ 'Hidden': 0,
557
+ 'Hidden+': 0,
558
+ 'Sudden': 1,
559
+ 'Sudden+': 1,
560
+ 'Hid&Sud+': 1,
561
+
562
+ filterPosDefault: {
563
+ 'Visible': 0,
564
+ 'Hidden': 50,
565
+ 'Sudden': 40,
566
+ },
567
+ pgDown: {
568
+ 'Hidden+': { OFF: `PageDown`, ON: `PageUp`, },
569
+ 'Sudden+': { OFF: `PageUp`, ON: `PageDown`, },
570
+ 'Hid&Sud+': { OFF: `PageUp`, ON: `PageDown`, },
571
+ },
572
+ pgUp: {
573
+ 'Hidden+': { OFF: `PageUp`, ON: `PageDown`, },
574
+ 'Sudden+': { OFF: `PageDown`, ON: `PageUp`, },
575
+ 'Hid&Sud+': { OFF: `PageDown`, ON: `PageUp`, },
576
+ },
577
+ std: {
578
+ 'Hidden+': { OFF: 0, ON: 1, },
579
+ 'Sudden+': { OFF: 1, ON: 0, },
580
+ 'Hid&Sud+': { OFF: 1, ON: 0, },
581
+ },
452
582
  };
453
- g_hidSudObj.std[`Sudden+`] = {
454
- OFF: 1,
455
- ON: 0,
456
- }
457
- g_hidSudObj.std[`Hid&Sud+`] = {
458
- OFF: 1,
459
- ON: 0,
460
- }
461
583
 
462
584
  // ステップゾーン位置、到達距離(後で指定)
463
585
  const C_STEP_Y = 70;
464
586
  const C_STEP_YR = 0;
465
- let g_stepY;
466
- let g_distY;
467
- let g_reverseStepY;
468
- let g_stepYR;
469
- let g_stepDiffY;
470
- let g_arrowHeight;
471
587
 
472
588
  const g_posObj = {
473
589
  stepY: 70,
@@ -499,7 +615,7 @@ for (let j = 0; j < 255; j++) {
499
615
  // キー表示用
500
616
  g_kCd[0] = `- - -`;
501
617
  g_kCd[1] = `Unknown`;
502
- g_kCd[8] = `BackSpace`;
618
+ g_kCd[8] = (g_isMac ? `Delete` : `BackSpace`);
503
619
  g_kCd[9] = `Tab`;
504
620
  g_kCd[12] = `Clear`;
505
621
  g_kCd[13] = `Enter`;
@@ -724,18 +840,31 @@ g_kCdN[226] = `IntlRo`;
724
840
  g_kCdN[229] = `Backquote`;
725
841
  g_kCdN[240] = `CapsLock`;
726
842
 
843
+ const g_kCdNameObj = {
844
+ shiftKey: `ShiftLeft`,
845
+ metaKey: `MetaLeft`,
846
+ };
847
+
727
848
  // 画面別ショートカット
728
849
  const g_shortcutObj = {
729
850
  title: {
730
851
  Enter: { id: `btnStart` },
852
+ NumpadEnter: { id: `btnStart` },
853
+ Slash: { id: `btnHelp`, reset: true },
854
+ F1: { id: `btnHelp`, reset: true },
855
+ ControlLeft_KeyC: { id: `` },
856
+ KeyC: { id: `btnComment` },
731
857
  },
732
858
  option: {
733
859
  ShiftLeft_KeyD: { id: `lnkDifficultyL` },
734
860
  KeyD: { id: `lnkDifficultyR` },
735
861
  ShiftLeft_ArrowRight: { id: `lnkSpeedR` },
862
+ AltLeft_ArrowRight: { id: `lnkSpeedHR` },
736
863
  ArrowRight: { id: `lnkSpeedRR` },
737
864
  ShiftLeft_ArrowLeft: { id: `lnkSpeedL` },
865
+ AltLeft_ArrowLeft: { id: `lnkSpeedHL` },
738
866
  ArrowLeft: { id: `lnkSpeedLL` },
867
+ KeyL: { id: `lnkDifficulty` },
739
868
 
740
869
  ShiftLeft_KeyM: { id: `lnkMotionL` },
741
870
  KeyM: { id: `lnkMotionR` },
@@ -750,20 +879,29 @@ const g_shortcutObj = {
750
879
  ShiftLeft_KeyG: { id: `lnkGaugeL` },
751
880
  KeyG: { id: `lnkGaugeR` },
752
881
 
882
+ AltLeft_ShiftLeft_Semicolon: { id: `lnkAdjustmentHR` },
753
883
  ShiftLeft_Semicolon: { id: `lnkAdjustmentR` },
884
+ AltLeft_Semicolon: { id: `lnkAdjustmentRRR` },
754
885
  Semicolon: { id: `lnkAdjustmentRR` },
886
+ AltLeft_ShiftLeft_Minus: { id: `lnkAdjustmentHL` },
755
887
  ShiftLeft_Minus: { id: `lnkAdjustmentL` },
888
+ AltLeft_Minus: { id: `lnkAdjustmentLLL` },
756
889
  Minus: { id: `lnkAdjustmentLL` },
757
890
 
891
+ AltLeft_ShiftLeft_NumpadAdd: { id: `lnkAdjustmentHR` },
758
892
  ShiftLeft_NumpadAdd: { id: `lnkAdjustmentR` },
893
+ AltLeft_NumpadAdd: { id: `lnkAdjustmentRRR` },
759
894
  NumpadAdd: { id: `lnkAdjustmentRR` },
895
+ AltLeft_ShiftLeft_NumpadSubtract: { id: `lnkAdjustmentHL` },
760
896
  ShiftLeft_NumpadSubtract: { id: `lnkAdjustmentL` },
897
+ AltLeft_NumpadSubtract: { id: `lnkAdjustmentLLL` },
761
898
  NumpadSubtract: { id: `lnkAdjustmentLL` },
762
899
 
763
900
  ShiftLeft_KeyV: { id: `lnkVolumeL` },
764
901
  KeyV: { id: `lnkVolumeR` },
765
902
 
766
903
  KeyI: { id: `btnGraph` },
904
+ ShiftLeft_KeyQ: { id: `lnkScoreDetailB` },
767
905
  KeyQ: { id: `lnkScoreDetail` },
768
906
  KeyP: { id: `lnkDifInfo` },
769
907
  KeyZ: { id: `btnSave` },
@@ -771,6 +909,22 @@ const g_shortcutObj = {
771
909
  Escape: { id: `btnBack` },
772
910
  Space: { id: `btnKeyConfig` },
773
911
  Enter: { id: `btnPlay` },
912
+ NumpadEnter: { id: `btnPlay` },
913
+ ShiftLeft_Tab: { id: `btnBack` },
914
+ Tab: { id: `btnDisplay` },
915
+ },
916
+ difSelector: {
917
+ ShiftLeft_KeyD: { id: `lnkDifficultyL` },
918
+ KeyD: { id: `lnkDifficultyR` },
919
+ KeyR: { id: `difRandom` },
920
+ KeyL: { id: `lnkDifficulty` },
921
+ ArrowDown: { id: `btnDifD` },
922
+ ArrowUp: { id: `btnDifU` },
923
+
924
+ Escape: { id: `btnBack` },
925
+ Space: { id: `btnKeyConfig` },
926
+ Enter: { id: `lnkDifficulty` },
927
+ NumpadEnter: { id: `lnkDifficulty` },
774
928
  ShiftLeft_Tab: { id: `btnBack` },
775
929
  Tab: { id: `btnDisplay` },
776
930
  },
@@ -808,18 +962,27 @@ const g_shortcutObj = {
808
962
  NumpadSubtract: { id: `lnkarrowEffect` },
809
963
  NumpadDivide: { id: `lnkspecial` },
810
964
 
965
+ KeyZ: { id: `btnSave` },
811
966
  Escape: { id: `btnBack` },
812
967
  Space: { id: `btnKeyConfig` },
813
968
  Enter: { id: `btnPlay` },
969
+ NumpadEnter: { id: `btnPlay` },
814
970
  ShiftLeft_Tab: { id: `btnBack` },
815
971
  Tab: { id: `btnSettings` },
816
972
  },
817
973
  keyConfig: {
818
974
  Escape: { id: `btnBack` },
975
+ Backspace_Enter: { id: `btnPlay` },
976
+ Backspace_NumpadEnter: { id: `btnPlay` },
977
+ },
978
+ loadingIos: {
979
+ Enter: { id: `btnPlay` },
980
+ NumpadEnter: { id: `btnPlay` },
819
981
  },
820
982
  result: {
821
983
  Escape: { id: `btnBack` },
822
984
  ShiftLeft_Tab: { id: `btnBack` },
985
+ ControlLeft_KeyC: { id: `` },
823
986
  KeyC: { id: `btnCopy`, reset: true },
824
987
  KeyT: { id: `btnTweet`, reset: true },
825
988
  KeyG: { id: `btnGitter`, reset: true },
@@ -827,20 +990,44 @@ const g_shortcutObj = {
827
990
  },
828
991
  };
829
992
 
830
- // ショートカットキーの有効化時間(ミリ秒)※結果画面のみ利用
831
- const g_shortcutWaitTime = {
832
- result: 2000,
993
+ // ボタン・ショートカットキーの有効化時間(フレーム数)
994
+ // b_frame: ボタンの有効化フレーム数、s_frame: ショートカットキーの有効化フレーム数
995
+ // initial: 初回のみ有効化時間を設定する場合、trueを設定
996
+ const g_btnWaitFrame = {
997
+ initial: { b_frame: 0, s_frame: 0 },
998
+ title: { b_frame: 0, s_frame: 0 },
999
+ option: { b_frame: 0, s_frame: 0, initial: true },
1000
+ difSelector: { b_frame: 0, s_frame: 0 },
1001
+ settingsDisplay: { b_frame: 0, s_frame: 0 },
1002
+ keyConfig: { b_frame: 0, s_frame: 30 },
1003
+ loading: { b_frame: 0, s_frame: 0 },
1004
+ loadingIos: { b_frame: 0, s_frame: 0 },
1005
+ main: { b_frame: 0, s_frame: 0 },
1006
+ result: { b_frame: 0, s_frame: 120 },
833
1007
  };
834
1008
 
835
1009
  // 主要ボタンのリスト
836
1010
  const g_btnPatterns = {
837
- title: { Start: 0 },
1011
+ title: { Start: 0, Comment: -10 },
838
1012
  option: { Back: 0, KeyConfig: 0, Play: 0, Display: -5, Save: -10, Graph: -25 },
839
- settingsDisplay: { Back: 0, KeyConfig: 0, Play: 0, Settings: -5 },
840
- keyConfig: { Back: -3 },
1013
+ difSelector: {},
1014
+ settingsDisplay: { Back: 0, KeyConfig: 0, Play: 0, Save: -10, Settings: -5 },
1015
+ loadingIos: { Play: 0 },
1016
+ keyConfig: { Back: -3, Play: 0 },
841
1017
  result: { Back: -5, Copy: -5, Tweet: -5, Gitter: -5, Retry: 0 },
842
1018
  };
843
1019
 
1020
+ // メイン画面以外でキーリピートを許可しないキーを設定
1021
+ const g_unrepeatObj = {
1022
+ key: [`Enter`, `Backspace`, `Delete`, `Escape`, `NumpadEnter`, `Tab`],
1023
+ page: [`keyConfig`, `loading`, `loadingIos`],
1024
+ };
1025
+
1026
+ // メイン画面でキーリピートを許可するキーを設定
1027
+ const g_mainRepeatObj = {
1028
+ key: [`PageDown`, `PageUp`],
1029
+ };
1030
+
844
1031
  // CSS名称
845
1032
  const g_cssObj = {
846
1033
  title_base: `title_base`,
@@ -848,6 +1035,7 @@ const g_cssObj = {
848
1035
  settings_DifSelector: `settings_DifSelector`,
849
1036
  settings_Disabled: `settings_Disabled`,
850
1037
  settings_FadeinBar: `settings_FadeinBar`,
1038
+ settings_Shuffle: `settings_Shuffle`,
851
1039
 
852
1040
  keyconfig_warning: `keyconfig_warning`,
853
1041
  keyconfig_ConfigType: `keyconfig_ConfigType`,
@@ -903,6 +1091,7 @@ const g_cssObj = {
903
1091
 
904
1092
  button_Start: `button_Start`,
905
1093
  button_Default: `button_Default`,
1094
+ button_Default_NoColor: `button_Default_NoColor`,
906
1095
  button_Mini: `button_Mini`,
907
1096
  button_Back: `button_Back`,
908
1097
  button_Setting: `button_Setting`,
@@ -931,6 +1120,8 @@ const g_keyObj = {
931
1120
  currentKey: 7,
932
1121
  currentPtn: 0,
933
1122
 
1123
+ prevKey: `Dummy`,
1124
+
934
1125
  // キー別ヘッダー
935
1126
  // - 譜面データ中に出てくる矢印(ノーツ)の種類と順番(ステップゾーン表示順)を管理する。
936
1127
  // - ここで出てくる順番は、この後のstepRtn, keyCtrlとも対応している。
@@ -979,6 +1170,8 @@ const g_keyObj = {
979
1170
  `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
980
1171
  chara11L_1: [`sleft`, `sdown`, `sup`, `sright`,
981
1172
  `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1173
+ chara11i_1: [`left`, `down`, `gor`, `up`, `right`, `space`,
1174
+ `sleft`, `sdown`, `siyo`, `sup`, `sright`],
982
1175
  chara11W_1: [`sleft`, `sdown`, `sup`, `sright`,
983
1176
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
984
1177
  chara12_1: [`sleft`, `sdown`, `sup`, `sright`,
@@ -993,7 +1186,7 @@ const g_keyObj = {
993
1186
  `bleft`, `bdown`, `bup`, `bright`, `cleft`, `cdown`, `cup`, `cright`],
994
1187
 
995
1188
  chara5_2: [`left`, `down`, `space`, `up`, `right`],
996
- chara7_2: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1189
+ chara7_2: [`left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
997
1190
  chara8_2: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
998
1191
  chara9A_2: [`left`, `down`, `up`, `right`, `space`, `sleft`, `sdown`, `sup`, `sright`],
999
1192
  chara9B_2: [`left`, `down`, `up`, `right`, `space`, `sleft`, `sdown`, `sup`, `sright`],
@@ -1003,6 +1196,10 @@ const g_keyObj = {
1003
1196
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1004
1197
  chara11W_2: [`sleft`, `sdown`, `sup`, `sright`,
1005
1198
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1199
+ chara12_2: [`sleft`, `sdown`, `sup`, `sright`,
1200
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1201
+ chara14_2: [`sleftdia`, `sleft`, `sdown`, `sup`, `sright`, `srightdia`,
1202
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1006
1203
 
1007
1204
  chara7_3: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1008
1205
  chara8_3: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
@@ -1012,112 +1209,216 @@ const g_keyObj = {
1012
1209
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1013
1210
  chara11L_3: [`sleft`, `sdown`, `sup`, `sright`,
1014
1211
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1212
+ chara11W_3: [`sleft`, `sdown`, `sup`, `sright`,
1213
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1214
+ chara12_3: [`sleft`, `sdown`, `sup`, `sright`,
1215
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1216
+ chara14_3: [`sleftdia`, `sleft`, `sdown`, `sup`, `sright`, `srightdia`,
1217
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1015
1218
 
1016
- // カラーパターン
1017
- color5_0: [0, 0, 0, 0, 2],
1018
- color7_0: [0, 1, 0, 2, 0, 1, 0],
1019
- color7i_0: [2, 2, 2, 0, 0, 0, 0],
1020
- color8_0: [0, 1, 0, 2, 0, 1, 0, 2],
1021
- color9A_0: [0, 0, 0, 0, 2, 3, 3, 3, 3],
1022
- color9B_0: [1, 0, 1, 0, 2, 0, 1, 0, 1],
1023
- color9i_0: [0, 0, 0, 0, 2, 2, 2, 2, 2],
1024
- color11_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1025
- color11L_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1026
- color11W_0: [2, 3, 3, 2, 0, 1, 0, 2, 0, 1, 0],
1027
- color11i_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1028
- color12_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1029
- color13_0: [4, 4, 4, 4, 0, 0, 0, 0, 2, 3, 3, 3, 3],
1030
- color14_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1031
- color14i_0: [2, 2, 2, 3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1032
- color15A_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1033
- color15B_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1034
- color16i_0: [2, 2, 2, 3, 3, 3, 3, 1, 0, 1, 0, 2, 0, 1, 0, 1],
1035
- color17_0: [0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4],
1036
- color23_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 0, 1, 0],
1037
-
1038
- color5_1: [2, 0, 0, 0, 0],
1039
- color7_1: [0, 1, 0, 2, 0, 1, 0],
1040
- color8_1: [2, 0, 1, 0, 2, 0, 1, 0],
1041
- color9A_1: [0, 0, 0, 0, 2, 3, 3, 3, 3],
1042
- color9B_1: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1043
- color9i_1: [2, 2, 2, 2, 2, 0, 0, 0, 0],
1044
- color11_1: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1045
- color11L_1: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1046
- color11W_1: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1047
- color12_1: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1048
- color14_1: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1049
- color15A_1: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1050
- color15B_1: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1051
- color17_1: [0, 0, 0, 0, 2, 4, 4, 4, 4, 1, 1, 1, 1, 3, 3, 3, 3],
1052
-
1053
- color5_2: [0, 0, 2, 0, 0],
1054
- color7_2: [2, 0, 1, 0, 1, 0, 1, 0],
1055
- color8_2: [2, 0, 1, 0, 1, 0, 1, 0],
1056
- color9A_2: [3, 0, 3, 0, 2, 0, 3, 0, 3],
1057
- color9B_2: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1058
- color11_2: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1059
- color11L_2: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1060
- color11W_2: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1061
-
1062
- color7_3: [2, 0, 1, 0, 1, 0, 1, 0],
1063
- color8_3: [2, 0, 1, 0, 1, 0, 1, 0],
1064
- color9A_3: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1065
- color11_3: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1066
- color11L_3: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1067
-
1068
- // シャッフルグループ
1219
+ chara7_4: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1220
+ chara8_4: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1221
+ chara9A_4: [`left`, `down`, `gor`, `up`, `right`, `space`,
1222
+ `sleft`, `sdown`, `siyo`, `sup`, `sright`],
1223
+ chara11_4: [`sleft`, `sdown`, `sup`, `sright`,
1224
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1225
+ chara11L_4: [`sleft`, `sdown`, `sup`, `sright`,
1226
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1227
+ chara11W_4: [`sleft`, `sdown`, `sup`, `sright`,
1228
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1229
+
1230
+ chara7_5: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1231
+ chara8_5: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1232
+ chara11_5: [`sleft`, `sdown`, `sup`, `sright`,
1233
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1234
+ chara11L_5: [`sleft`, `sdown`, `sup`, `sright`,
1235
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1236
+
1237
+ chara7_6: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1238
+
1239
+ // カラーパターン(パターン1)
1240
+ color5_0_0: [0, 0, 0, 0, 2],
1241
+ color7_0_0: [0, 1, 0, 2, 0, 1, 0],
1242
+ color7i_0_0: [2, 2, 2, 0, 0, 0, 0],
1243
+ color8_0_0: [0, 1, 0, 2, 0, 1, 0, 2],
1244
+ color9A_0_0: [0, 0, 0, 0, 2, 3, 3, 3, 3],
1245
+ color9B_0_0: [1, 0, 1, 0, 2, 0, 1, 0, 1],
1246
+ color9i_0_0: [0, 0, 0, 0, 2, 2, 2, 2, 2],
1247
+ color11_0_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1248
+ color11L_0_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1249
+ color11W_0_0: [2, 3, 3, 2, 0, 1, 0, 2, 0, 1, 0],
1250
+ color11i_0_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1251
+ color12_0_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1252
+ color13_0_0: [4, 4, 4, 4, 0, 0, 0, 0, 2, 3, 3, 3, 3],
1253
+ color14_0_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1254
+ color14i_0_0: [2, 2, 2, 3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1255
+ color15A_0_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1256
+ color15B_0_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1257
+ color16i_0_0: [2, 2, 2, 3, 3, 3, 3, 1, 0, 1, 0, 2, 0, 1, 0, 1],
1258
+ color17_0_0: [0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4],
1259
+ color23_0_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 0, 1, 0],
1260
+
1261
+ color5_1_0: [2, 0, 0, 0, 0],
1262
+ color7_1_0: [0, 1, 0, 2, 0, 1, 0],
1263
+ color8_1_0: [2, 0, 1, 0, 2, 0, 1, 0],
1264
+ color9A_1_0: [0, 0, 0, 0, 2, 3, 3, 3, 3],
1265
+ color9B_1_0: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1266
+ color9i_1_0: [2, 2, 2, 2, 2, 0, 0, 0, 0],
1267
+ color11_1_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1268
+ color11L_1_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1269
+ color11W_1_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1270
+ color11i_1_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1271
+ color12_1_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1272
+ color14_1_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1273
+ color15A_1_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1274
+ color15B_1_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1275
+ color17_1_0: [0, 0, 0, 0, 2, 4, 4, 4, 4, 1, 1, 1, 1, 3, 3, 3, 3],
1276
+
1277
+ color5_2_0: [0, 0, 2, 0, 0],
1278
+ color7_2_0: [2, 2, 2, 0, 0, 0, 0],
1279
+ color8_2_0: [2, 0, 1, 0, 1, 0, 1, 0],
1280
+ color9A_2_0: [3, 0, 3, 0, 2, 0, 3, 0, 3],
1281
+ color9B_2_0: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1282
+ color11_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1283
+ color11L_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1284
+ color11W_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1285
+ color12_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1286
+ color14_2_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1287
+
1288
+ color7_3_0: [2, 0, 1, 0, 1, 0, 1, 0],
1289
+ color8_3_0: [2, 0, 1, 0, 1, 0, 1, 0],
1290
+ color9A_3_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1291
+ color11_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1292
+ color11L_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1293
+ color11W_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1294
+ color12_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1295
+ color14_3_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1296
+
1297
+ color7_4_0: [2, 0, 1, 0, 1, 0, 1, 0],
1298
+ color8_4_0: [2, 0, 1, 0, 1, 0, 1, 0],
1299
+ color9A_4_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1300
+ color11_4_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1301
+ color11L_4_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1302
+ color11W_4_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1303
+
1304
+ color7_5_0: [2, 0, 1, 0, 1, 0, 1, 0],
1305
+ color8_5_0: [2, 0, 1, 0, 1, 0, 1, 0],
1306
+ color11_5_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1307
+ color11L_5_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1308
+
1309
+ color7_6_0: [2, 0, 1, 0, 1, 0, 1, 0],
1310
+
1311
+ // カラーパターン(パターン2)
1312
+ color9B_0_1: [4, 3, 1, 0, 2, 0, 1, 3, 4],
1313
+ color9A_2_1: [4, 1, 3, 0, 2, 0, 3, 1, 4],
1314
+ color17_0_1: [1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 0, 1, 0, 1],
1315
+
1316
+ color17_1_1: [1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1317
+
1318
+ // シャッフルグループ(パターン1)
1069
1319
  // - Mirror, Random, S-Random使用時、同じグループ同士で入れ替えます
1070
1320
  // - 同じ数字が同じグループになります
1071
- shuffle5_0: [0, 0, 0, 0, 1],
1072
- shuffle7_0: [0, 0, 0, 1, 0, 0, 0],
1073
- shuffle7i_0: [0, 0, 0, 1, 1, 1, 1],
1074
- shuffle8_0: [0, 0, 0, 1, 0, 0, 0, 2],
1075
- shuffle9A_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1076
- shuffle9B_0: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1077
- shuffle9i_0: [0, 0, 0, 0, 1, 1, 1, 1, 1],
1078
- shuffle11_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1079
- shuffle11L_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1080
- shuffle11W_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1081
- shuffle11i_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1082
- shuffle12_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1083
- shuffle13_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, 3],
1084
- shuffle14_0: [0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1085
- shuffle14i_0: [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1086
- shuffle15A_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1087
- shuffle15B_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1088
- shuffle16i_0: [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 2, 2, 2, 2],
1089
- shuffle17_0: [0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2],
1090
- shuffle23_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4, 4, 4],
1091
-
1092
- shuffle5_1: [1, 0, 0, 0, 0],
1093
- shuffle7_1: [0, 0, 0, 1, 0, 0, 0],
1094
- shuffle8_1: [2, 0, 0, 0, 1, 0, 0, 0],
1095
- shuffle9A_1: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1096
- shuffle9B_1: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1097
- shuffle9i_1: [0, 0, 0, 0, 0, 1, 1, 1, 1],
1098
- shuffle11_1: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1099
- shuffle11L_1: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1100
- shuffle11W_1: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1101
- shuffle12_1: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1102
- shuffle14_1: [0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1103
- shuffle15A_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1104
- shuffle15B_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1105
- shuffle17_1: [0, 0, 0, 0, 1, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2],
1106
-
1107
- shuffle5_2: [0, 0, 1, 0, 0],
1108
- shuffle7_2: [1, 0, 0, 0, 0, 0, 0, 0],
1109
- shuffle8_2: [1, 0, 0, 0, 0, 0, 0, 0],
1110
- shuffle9A_2: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1111
- shuffle9B_2: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1112
- shuffle11_2: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1113
- shuffle11L_2: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1114
- shuffle11W_2: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1115
-
1116
- shuffle7_3: [1, 0, 0, 0, 0, 0, 0, 0],
1117
- shuffle8_3: [1, 0, 0, 0, 0, 0, 0, 0],
1118
- shuffle9A_3: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1119
- shuffle11_3: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1120
- shuffle11L_3: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1321
+ shuffle5_0_0: [0, 0, 0, 0, 1],
1322
+ shuffle7_0_0: [0, 0, 0, 1, 0, 0, 0],
1323
+ shuffle7i_0_0: [0, 0, 0, 1, 1, 1, 1],
1324
+ shuffle8_0_0: [0, 0, 0, 1, 0, 0, 0, 2],
1325
+ shuffle9A_0_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1326
+ shuffle9B_0_0: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1327
+ shuffle9i_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 1],
1328
+ shuffle11_0_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1329
+ shuffle11L_0_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1330
+ shuffle11W_0_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1331
+ shuffle11i_0_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1332
+ shuffle12_0_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1333
+ shuffle13_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, 3],
1334
+ shuffle14_0_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1335
+ shuffle14i_0_0: [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1336
+ shuffle15A_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1337
+ shuffle15B_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1338
+ shuffle16i_0_0: [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 2, 2, 2, 2],
1339
+ shuffle17_0_0: [0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2],
1340
+ shuffle23_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4, 4, 4],
1341
+
1342
+ shuffle5_1_0: [1, 0, 0, 0, 0],
1343
+ shuffle7_1_0: [0, 0, 0, 1, 0, 0, 0],
1344
+ shuffle8_1_0: [2, 0, 0, 0, 1, 0, 0, 0],
1345
+ shuffle9A_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1346
+ shuffle9B_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1347
+ shuffle9i_1_0: [0, 0, 0, 0, 0, 1, 1, 1, 1],
1348
+ shuffle11_1_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1349
+ shuffle11L_1_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1350
+ shuffle11W_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1351
+ shuffle11i_1_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1352
+ shuffle12_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1353
+ shuffle14_1_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1354
+ shuffle15A_1_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1355
+ shuffle15B_1_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1356
+ shuffle17_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2],
1357
+
1358
+ shuffle5_2_0: [0, 0, 1, 0, 0],
1359
+ shuffle7_2_0: [0, 0, 0, 1, 1, 1, 1],
1360
+ shuffle8_2_0: [1, 0, 0, 0, 0, 0, 0, 0],
1361
+ shuffle9A_2_0: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1362
+ shuffle9B_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1363
+ shuffle11_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1364
+ shuffle11L_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1365
+ shuffle11W_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1366
+ shuffle12_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1367
+ shuffle14_2_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1368
+
1369
+ shuffle7_3_0: [1, 0, 0, 0, 0, 0, 0, 0],
1370
+ shuffle8_3_0: [1, 0, 0, 0, 0, 0, 0, 0],
1371
+ shuffle9A_3_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1372
+ shuffle11_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1373
+ shuffle11L_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1374
+ shuffle11W_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1375
+ shuffle12_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1376
+ shuffle14_3_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1377
+
1378
+ shuffle7_4_0: [1, 0, 0, 0, 0, 0, 0, 0],
1379
+ shuffle8_4_0: [1, 0, 0, 0, 0, 0, 0, 0],
1380
+ shuffle9A_4_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1381
+ shuffle11_4_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1382
+ shuffle11L_4_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1383
+ shuffle11W_4_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1384
+
1385
+ shuffle7_5_0: [1, 0, 0, 0, 0, 0, 0, 0],
1386
+ shuffle8_5_0: [1, 0, 0, 0, 0, 0, 0, 0],
1387
+ shuffle11_5_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1388
+ shuffle11L_5_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1389
+
1390
+ shuffle7_6_0: [1, 0, 0, 0, 0, 0, 0, 0],
1391
+
1392
+ // シャッフルグループ(パターン2)
1393
+ shuffle9A_0_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1394
+ shuffle11_0_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1395
+ shuffle11L_0_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1396
+ shuffle11i_0_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1397
+ shuffle15A_0_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1398
+ shuffle15B_0_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1399
+ shuffle17_0_1: [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1400
+
1401
+ shuffle9A_1_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1402
+ shuffle9B_1_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1403
+ shuffle11_1_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1404
+ shuffle11L_1_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1405
+ shuffle11i_1_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1406
+ shuffle15A_1_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1407
+ shuffle15B_1_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1408
+ shuffle17_1_1: [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1409
+
1410
+ shuffle9B_2_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1411
+
1412
+ shuffle9A_3_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1413
+
1414
+ shuffle9A_4_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1415
+
1416
+ // シャッフルグループ(パターン3)
1417
+ shuffle15A_0_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1418
+ shuffle15B_0_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1419
+
1420
+ shuffle15A_1_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1421
+ shuffle15B_1_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1121
1422
 
1122
1423
  // 基本パターン (矢印回転、AAキャラクタ)
1123
1424
  // - AAキャラクタの場合、キャラクタ名を指定
@@ -1155,6 +1456,7 @@ const g_keyObj = {
1155
1456
  stepRtn11_1: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1156
1457
  stepRtn11L_1: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1157
1458
  stepRtn11W_1: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1459
+ stepRtn11i_1: [0, -135, `giko`, 45, 180, `onigiri`, 0, -135, `iyo`, 45, 180],
1158
1460
  stepRtn12_1: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1159
1461
  stepRtn14_1: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1160
1462
  stepRtn15A_1: [0, -90, 90, 180, 0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
@@ -1163,19 +1465,38 @@ const g_keyObj = {
1163
1465
  -22.5, -67.5, -112.5, -157.5, 22.5, 67.5, 112.5, 157.5],
1164
1466
 
1165
1467
  stepRtn5_2: [0, -90, `onigiri`, 90, 180],
1166
- stepRtn7_2: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1468
+ stepRtn7_2: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180],
1167
1469
  stepRtn8_2: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1168
1470
  stepRtn9A_2: [45, 0, -45, -90, `onigiri`, 90, 135, 180, 225],
1169
1471
  stepRtn9B_2: [0, -90, 90, 180, `onigiri`, 0, -90, 90, 180],
1170
1472
  stepRtn11_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1171
1473
  stepRtn11L_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1172
1474
  stepRtn11W_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1475
+ stepRtn12_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1476
+ stepRtn14_2: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1173
1477
 
1174
1478
  stepRtn7_3: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1175
1479
  stepRtn8_3: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1176
1480
  stepRtn9A_3: [0, -90, `giko`, 90, 180, `onigiri`, 0, -90, `iyo`, 90, 180],
1177
1481
  stepRtn11_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1178
1482
  stepRtn11L_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1483
+ stepRtn11W_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1484
+ stepRtn12_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1485
+ stepRtn14_3: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1486
+
1487
+ stepRtn7_4: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1488
+ stepRtn8_4: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1489
+ stepRtn9A_4: [0, -135, `giko`, 45, 180, `onigiri`, 0, -135, `iyo`, 45, 180],
1490
+ stepRtn11_4: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1491
+ stepRtn11L_4: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1492
+ stepRtn11W_4: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1493
+
1494
+ stepRtn7_5: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1495
+ stepRtn8_5: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1496
+ stepRtn11_5: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1497
+ stepRtn11L_5: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1498
+
1499
+ stepRtn7_6: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1179
1500
 
1180
1501
  // 各キーの区切り位置
1181
1502
  div5_0: 5,
@@ -1208,6 +1529,7 @@ const g_keyObj = {
1208
1529
  div11_1: 6,
1209
1530
  div11L_1: 6,
1210
1531
  div11W_1: 5,
1532
+ div11i_1: 11,
1211
1533
  div12_1: 5,
1212
1534
  div14_1: 7,
1213
1535
  div15A_1: 8,
@@ -1215,19 +1537,38 @@ const g_keyObj = {
1215
1537
  div17_1: 9,
1216
1538
 
1217
1539
  div5_2: 5,
1218
- div7_2: 8,
1540
+ div7_2: 7,
1219
1541
  div8_2: 8,
1220
1542
  div9A_2: 9,
1221
1543
  div9B_2: 9,
1222
1544
  div11_2: 5,
1223
1545
  div11L_2: 5,
1224
1546
  div11W_2: 5,
1547
+ div12_2: 5,
1548
+ div14_2: 7,
1225
1549
 
1226
1550
  div7_3: 8,
1227
1551
  div8_3: 8,
1228
1552
  div9A_3: 11,
1229
1553
  div11_3: 5,
1230
1554
  div11L_3: 5,
1555
+ div11W_3: 5,
1556
+ div12_3: 5,
1557
+ div14_3: 7,
1558
+
1559
+ div7_4: 8,
1560
+ div8_4: 8,
1561
+ div9A_4: 11,
1562
+ div11_4: 5,
1563
+ div11L_4: 5,
1564
+ div11W_4: 5,
1565
+
1566
+ div7_5: 8,
1567
+ div8_5: 8,
1568
+ div11_5: 5,
1569
+ div11L_5: 5,
1570
+
1571
+ div7_6: 8,
1231
1572
 
1232
1573
  // 各キーの位置関係
1233
1574
  pos5_0: [0, 1, 2, 3, 4],
@@ -1260,6 +1601,7 @@ const g_keyObj = {
1260
1601
  pos11_1: [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 12],
1261
1602
  pos11L_1: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1262
1603
  pos11W_1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1604
+ pos11i_1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
1263
1605
  pos12_1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1264
1606
  pos14_1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
1265
1607
  pos15A_1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
@@ -1267,22 +1609,40 @@ const g_keyObj = {
1267
1609
  pos17_1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
1268
1610
 
1269
1611
  pos5_2: [0, 1, 2, 3, 4],
1270
- pos7_2: [0, 1, 2, 3, 4, 5, 6, 7],
1612
+ pos7_2: [0, 1, 2, 3, 4, 5, 6],
1271
1613
  pos8_2: [0, 1, 2, 3, 4, 5, 6, 7],
1272
1614
  pos9A_2: [0, 1, 2, 3, 4, 5, 6, 7, 8],
1273
1615
  pos9B_2: [0, 1, 2, 3, 4, 5, 6, 7, 8],
1274
1616
  pos11_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1275
1617
  pos11L_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1276
1618
  pos11W_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1619
+ pos12_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1620
+ pos14_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
1277
1621
 
1278
1622
  pos7_3: [0, 1, 2, 3, 4, 5, 6, 7],
1279
1623
  pos8_3: [0, 1, 2, 3, 4, 5, 6, 7],
1280
1624
  pos9A_3: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
1281
1625
  pos11_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1282
1626
  pos11L_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1627
+ pos11W_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1628
+ pos12_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1629
+ pos14_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
1630
+
1631
+ pos7_4: [0, 1, 2, 3, 4, 5, 6, 7],
1632
+ pos8_4: [0, 1, 2, 3, 4, 5, 6, 7],
1633
+ pos9A_4: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
1634
+ pos11_4: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1635
+ pos11L_4: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1636
+ pos11W_4: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1637
+
1638
+ pos7_5: [0, 1, 2, 3, 4, 5, 6, 7],
1639
+ pos8_5: [0, 1, 2, 3, 4, 5, 6, 7],
1640
+ pos11_5: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1641
+ pos11L_5: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1642
+
1643
+ pos7_6: [0, 1, 2, 3, 4, 5, 6, 7],
1283
1644
 
1284
1645
  // 基本パターン (キーコンフィグ)
1285
- // - 末尾dなし(実際の設定値)と末尾dあり(デフォルト値)は必ずセットで揃えること。配列数も合わせる。
1286
1646
  // - 順番はchara, stepRtnと対応している。
1287
1647
  // - 多次元配列内はステップに対応するキーコードを示す。カンマ区切りで複数指定できる。
1288
1648
  keyCtrl5_0: [[37, 0], [40, 0], [38, 0], [39, 0], [32, 0]],
@@ -1307,32 +1667,8 @@ const g_keyObj = {
1307
1667
  keyCtrl23_0: [[87, 0], [69, 0], [51, 52], [82, 0], [85, 0], [73, 0], [56, 57], [79, 0],
1308
1668
  [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1309
1669
 
1310
- keyCtrl5_0d: [[37, 0], [40, 0], [38, 0], [39, 0], [32, 0]],
1311
- keyCtrl7_0d: [[83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1312
- keyCtrl7i_0d: [[90, 0], [88, 0], [67, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1313
- keyCtrl8_0d: [[83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [13, 0]],
1314
- keyCtrl9A_0d: [[83, 0], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [75, 0], [73, 0], [76, 0]],
1315
- keyCtrl9B_0d: [[65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [187, 0]],
1316
- keyCtrl9i_0d: [[37, 0], [40, 0], [38, 0], [39, 0], [65, 0], [83, 0], [68, 0], [70, 0], [32, 0]],
1317
- keyCtrl11_0d: [[37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1318
- keyCtrl11L_0d: [[87, 0], [69, 0], [51, 52], [82, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1319
- keyCtrl11W_0d: [[49, 50], [84, 0], [89, 0], [48, 189], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1320
- keyCtrl11i_0d: [[83, 0], [88, 67], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [77, 188], [75, 0], [73, 79], [76, 0]],
1321
- keyCtrl12_0d: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1322
- keyCtrl13_0d: [[37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [75, 0], [73, 0], [76, 0]],
1323
- keyCtrl14_0d: [[84, 89], [85, 0], [73, 0], [56, 55, 57, 48], [79, 0], [192, 80], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1324
- keyCtrl14i_0d: [[90, 0], [88, 0], [67, 0], [37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1325
- keyCtrl15A_0d: [[87, 0], [69, 0], [51, 52], [82, 0], [37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1326
- keyCtrl15B_0d: [[87, 0], [69, 0], [51, 52], [82, 0], [85, 0], [73, 0], [56, 57], [79, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1327
- keyCtrl16i_0d: [[90, 0], [88, 0], [67, 0], [37, 0], [40, 0], [38, 0], [39, 0], [65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [187, 0]],
1328
- keyCtrl17_0d: [[65, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0], [187, 0]],
1329
- keyCtrl23_0d: [[87, 0], [69, 0], [51, 52], [82, 0], [85, 0], [73, 0], [56, 57], [79, 0],
1330
- [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1331
-
1332
1670
  // 変則パターン (キーコンフィグ)
1333
- // - 末尾dなし(実際の設定値)と末尾dあり(デフォルト値)は必ずセットで揃えること。配列数も合わせる。
1334
- // - _0, _0dの数字部分をカウントアップすることで実現できる。
1335
- // - 配列数は合わせる必要はあるが、代替キーの数は _X, _Xdで揃っていれば合わせる必要はない。
1671
+ // - _0 の数字部分をカウントアップすることで実現できる。
1336
1672
  keyCtrl5_1: [[32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1337
1673
  keyCtrl7_1: [[83, 0], [69, 0], [70, 0], [32, 71, 72], [74, 0], [73, 0], [76, 0]],
1338
1674
  keyCtrl8_1: [[13, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
@@ -1342,61 +1678,52 @@ const g_keyObj = {
1342
1678
  keyCtrl11_1: [[87, 0], [69, 0], [51, 52], [82, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1343
1679
  keyCtrl11L_1: [[37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1344
1680
  keyCtrl11W_1: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1681
+ keyCtrl11i_1: [[83, 0], [88, 67], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [77, 188], [75, 0], [73, 79], [76, 0]],
1345
1682
  keyCtrl12_1: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1346
1683
  keyCtrl14_1: [[82, 84], [89, 0], [85, 73], [56, 54, 55, 57, 48], [79, 0], [192, 80], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1347
1684
  keyCtrl15A_1: [[87, 0], [69, 0], [51, 52], [82, 0], [85, 0], [73, 0], [56, 57], [79, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1348
1685
  keyCtrl15B_1: [[87, 0], [69, 0], [51, 52], [82, 0], [37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1349
1686
  keyCtrl17_1: [[65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [187, 0], [90, 0], [88, 0], [67, 0], [86, 0], [78, 0], [77, 0], [188, 0], [190, 0]],
1350
1687
 
1351
- keyCtrl5_1d: [[32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1352
- keyCtrl7_1d: [[83, 0], [69, 0], [70, 0], [32, 71, 72], [74, 0], [73, 0], [76, 0]],
1353
- keyCtrl8_1d: [[13, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1354
- keyCtrl9A_1d: [[83, 0], [68, 0], [69, 82], [70, 0], [32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1355
- keyCtrl9B_1d: [[83, 0], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [75, 0], [73, 0], [76, 0]],
1356
- keyCtrl9i_1d: [[65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1357
- keyCtrl11_1d: [[87, 0], [69, 0], [51, 52], [82, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1358
- keyCtrl11L_1d: [[37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1359
- keyCtrl11W_1d: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1360
- keyCtrl12_1d: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1361
- keyCtrl14_1d: [[82, 84], [89, 0], [85, 73], [56, 54, 55, 57, 48], [79, 0], [192, 80], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1362
- keyCtrl15A_1d: [[87, 0], [69, 0], [51, 52], [82, 0], [85, 0], [73, 0], [56, 57], [79, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1363
- keyCtrl15B_1d: [[87, 0], [69, 0], [51, 52], [82, 0], [37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1364
- keyCtrl17_1d: [[65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [187, 0], [90, 0], [88, 0], [67, 0], [86, 0], [78, 0], [77, 0], [188, 0], [190, 0]],
1365
-
1366
1688
  keyCtrl5_2: [[68, 0], [70, 0], [32, 0], [74, 0], [75, 0]],
1367
- keyCtrl7_2: [[32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1689
+ keyCtrl7_2: [[90, 0], [88, 0], [67, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1368
1690
  keyCtrl8_2: [[32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1369
1691
  keyCtrl9A_2: [[65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [187, 0]],
1370
1692
  keyCtrl9B_2: [[83, 0], [68, 0], [69, 82], [70, 0], [32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1371
1693
  keyCtrl11_2: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1372
1694
  keyCtrl11L_2: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1373
1695
  keyCtrl11W_2: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1696
+ keyCtrl12_2: [[87, 0], [69, 0], [51, 52], [82, 0], [16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1697
+ keyCtrl14_2: [[9, 81], [87, 0], [69, 0], [51, 50, 52, 53], [82, 0], [89, 84], [16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1374
1698
 
1375
- keyCtrl5_2d: [[68, 0], [70, 0], [32, 0], [74, 0], [75, 0]],
1376
- keyCtrl7_2d: [[32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1377
- keyCtrl8_2d: [[32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1378
- keyCtrl9A_2d: [[65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [187, 0]],
1379
- keyCtrl9B_2d: [[83, 0], [68, 0], [69, 82], [70, 0], [32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1380
- keyCtrl11_2d: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1381
- keyCtrl11L_2d: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1382
- keyCtrl11W_2d: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1383
-
1384
- keyCtrl7_3: [[32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1699
+ keyCtrl7_3: [[32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1385
1700
  keyCtrl8_3: [[32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1386
1701
  keyCtrl9A_3: [[83, 0], [88, 67], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [77, 188], [75, 0], [73, 79], [76, 0]],
1387
1702
  keyCtrl11_3: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1388
1703
  keyCtrl11L_3: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1704
+ keyCtrl11W_3: [[87, 0], [69, 0], [51, 52], [82, 0], [16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1705
+ keyCtrl12_3: [[87, 0], [69, 82], [51, 52, 53], [84, 0], [16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1706
+ keyCtrl14_3: [[9, 81], [87, 0], [69, 82], [51, 50, 52, 53, 54], [84, 0], [85, 89], [16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1389
1707
 
1390
- keyCtrl7_3d: [[32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1391
- keyCtrl8_3d: [[32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1392
- keyCtrl9A_3d: [[83, 0], [88, 67], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [77, 188], [75, 0], [73, 79], [76, 0]],
1393
- keyCtrl11_3d: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1394
- keyCtrl11L_3d: [[89, 0], [85, 73], [56, 55, 57], [79, 0], [32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1708
+ keyCtrl7_4: [[32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1709
+ keyCtrl8_4: [[16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1710
+ keyCtrl9A_4: [[83, 0], [88, 67], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [77, 188], [75, 0], [73, 79], [76, 0]],
1711
+ keyCtrl11_4: [[87, 0], [69, 0], [51, 52], [82, 0], [16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1712
+ keyCtrl11L_4: [[87, 0], [69, 0], [51, 52], [82, 0], [16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1713
+ keyCtrl11W_4: [[87, 0], [69, 82], [51, 52, 53], [84, 0], [16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1714
+
1715
+ keyCtrl7_5: [[16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1716
+ keyCtrl8_5: [[16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1717
+ keyCtrl11_5: [[87, 0], [69, 82], [51, 52, 53], [84, 0], [16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1718
+ keyCtrl11L_5: [[87, 0], [69, 82], [51, 52, 53], [84, 0], [16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1719
+
1720
+ keyCtrl7_6: [[16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1395
1721
 
1396
1722
  // 矢印間隔補正
1397
1723
  blank: 55,
1398
1724
  blank_def: 55,
1399
1725
  blank11i_0: 50,
1726
+ blank11i_1: 50,
1400
1727
  blank17_0: 45,
1401
1728
  blank5_0: 57.5,
1402
1729
  blank5_1: 57.5,
@@ -1405,6 +1732,7 @@ const g_keyObj = {
1405
1732
  blank9A_1: 52.5,
1406
1733
  blank9A_2: 52.5,
1407
1734
  blank9A_3: 50,
1735
+ blank9A_4: 50,
1408
1736
  blank9B_0: 52.5,
1409
1737
  blank9B_1: 52.5,
1410
1738
  blank9B_2: 52.5,
@@ -1430,7 +1758,7 @@ const g_keyObj = {
1430
1758
 
1431
1759
  transKey9A_2: '9B',
1432
1760
  transKey9B_2: '9A',
1433
- transKey7_2: '12',
1761
+ transKey7_2: '7i',
1434
1762
  transKey8_2: '12',
1435
1763
  transKey11_2: '12',
1436
1764
  transKey11L_2: '12',
@@ -1441,6 +1769,21 @@ const g_keyObj = {
1441
1769
  transKey9A_3: '11i',
1442
1770
  transKey11_3: '12',
1443
1771
  transKey11L_3: '12',
1772
+ transKey11W_3: '12',
1773
+
1774
+ transKey7_4: '12',
1775
+ transKey8_4: '12',
1776
+ transKey9A_4: '11i',
1777
+ transKey11_4: '12',
1778
+ transKey11L_4: '12',
1779
+ transKey11W_4: '12',
1780
+
1781
+ transKey7_5: '12',
1782
+ transKey8_5: '12',
1783
+ transKey11_5: '12',
1784
+ transKey11L_5: '12',
1785
+
1786
+ transKey7_6: '12',
1444
1787
 
1445
1788
  // キー置換用(ParaFla版との互換)
1446
1789
  keyTransPattern: {
@@ -1457,25 +1800,6 @@ const g_keyObj = {
1457
1800
 
1458
1801
  // スクロール拡張オプション
1459
1802
  scrollName_def: [`---`],
1460
- scrollName5: [`---`, `Cross`, `Split`, `Alternate`],
1461
- scrollName7: [`---`, `Cross`, `Split`, `Alternate`, `Twist`, `Asymmetry`],
1462
- scrollName7i: [`---`, `Cross`, `Split`, `Alternate`, `Twist`, `Asymmetry`],
1463
- scrollName8: [`---`, `Cross`, `Split`, `Alternate`, `Twist`, `Asymmetry`],
1464
- scrollName9A: [`---`, `Cross`, `Split`, `Alternate`],
1465
- scrollName9B: [`---`, `Cross`, `Split`, `Alternate`],
1466
- scrollName11: [`---`, `Flat`],
1467
- scrollName11L: [`---`, `Flat`],
1468
- scrollName11W: [`---`, `Flat`],
1469
- scrollName11i: [`---`, `Cross`, `Split`, `Alternate`],
1470
- scrollName12: [`---`, `Flat`],
1471
- scrollName13: [`---`, `Flat`],
1472
- scrollName14: [`---`, `Flat`],
1473
- scrollName14i: [`---`, `Flat`],
1474
- scrollName15A: [`---`, `Flat`],
1475
- scrollName15B: [`---`, `Flat`],
1476
- scrollName16i: [`---`, `Flat`],
1477
- scrollName23: [`---`, `Flat`],
1478
-
1479
1803
  scrollDir5_0: {
1480
1804
  '---': [1, 1, 1, 1, 1],
1481
1805
  'Cross': [1, -1, -1, 1, 1],
@@ -1511,6 +1835,14 @@ const g_keyObj = {
1511
1835
  'Asymmetry': [1, -1, 1, -1, -1, 1, -1],
1512
1836
  },
1513
1837
  scrollDir7_2: {
1838
+ '---': [1, 1, 1, 1, 1, 1, 1],
1839
+ 'Cross': [1, 1, -1, -1, -1, 1, 1],
1840
+ 'Split': [1, 1, 1, -1, -1, -1, -1],
1841
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1],
1842
+ 'Twist': [1, 1, -1, -1, 1, 1, -1],
1843
+ 'Asymmetry': [1, -1, 1, 1, -1, 1, -1],
1844
+ },
1845
+ scrollDir7_3: {
1514
1846
  '---': [1, 1, 1, 1, 1, 1, 1, 1],
1515
1847
  'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1516
1848
  'Split': [1, 1, 1, 1, 1, -1, -1, -1],
@@ -1518,7 +1850,23 @@ const g_keyObj = {
1518
1850
  'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1519
1851
  'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1520
1852
  },
1521
- scrollDir7_3: {
1853
+ scrollDir7_4: {
1854
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1855
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1856
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1857
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1858
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1859
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1860
+ },
1861
+ scrollDir7_5: {
1862
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1863
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1864
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1865
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1866
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1867
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1868
+ },
1869
+ scrollDir7_6: {
1522
1870
  '---': [1, 1, 1, 1, 1, 1, 1, 1],
1523
1871
  'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1524
1872
  'Split': [1, 1, 1, 1, 1, -1, -1, -1],
@@ -1567,29 +1915,61 @@ const g_keyObj = {
1567
1915
  'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1568
1916
  'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1569
1917
  },
1918
+ scrollDir8_4: {
1919
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1920
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1921
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1922
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1923
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1924
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1925
+ },
1926
+ scrollDir8_5: {
1927
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1928
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1929
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1930
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1931
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1932
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1933
+ },
1570
1934
  scrollDir9A_0: {
1571
1935
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1572
1936
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1573
1937
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1574
1938
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1939
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1940
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1575
1941
  },
1576
1942
  scrollDir9A_1: {
1577
1943
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1578
1944
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1579
1945
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1580
1946
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1947
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1948
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1581
1949
  },
1582
1950
  scrollDir9A_2: {
1583
1951
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1584
1952
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1585
1953
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1586
1954
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1955
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1956
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1587
1957
  },
1588
1958
  scrollDir9A_3: {
1589
1959
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1590
1960
  'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
1591
1961
  'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
1592
1962
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
1963
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
1964
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
1965
+ },
1966
+ scrollDir9A_4: {
1967
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1968
+ 'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
1969
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
1970
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
1971
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
1972
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
1593
1973
  },
1594
1974
 
1595
1975
  scrollDir9B_0: {
@@ -1597,18 +1977,32 @@ const g_keyObj = {
1597
1977
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1598
1978
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1599
1979
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1980
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1981
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1600
1982
  },
1601
1983
  scrollDir9B_1: {
1602
1984
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1603
1985
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1604
1986
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1605
1987
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1988
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1989
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1606
1990
  },
1607
1991
  scrollDir9B_2: {
1608
1992
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1609
1993
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1610
1994
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1611
1995
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1996
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1997
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1998
+ },
1999
+ scrollDir9i_1: {
2000
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
2001
+ 'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
2002
+ 'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
2003
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
2004
+ 'Twist': [1, 1, -1, -1, 1, 1, 1, -1, -1],
2005
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1612
2006
  },
1613
2007
 
1614
2008
  scrollDir11_0: {
@@ -1627,6 +2021,14 @@ const g_keyObj = {
1627
2021
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1628
2022
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1629
2023
  },
2024
+ scrollDir11_4: {
2025
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2026
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2027
+ },
2028
+ scrollDir11_5: {
2029
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2030
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2031
+ },
1630
2032
 
1631
2033
  scrollDir11L_0: {
1632
2034
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
@@ -1644,6 +2046,14 @@ const g_keyObj = {
1644
2046
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1645
2047
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1646
2048
  },
2049
+ scrollDir11L_4: {
2050
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2051
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2052
+ },
2053
+ scrollDir11L_5: {
2054
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2055
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2056
+ },
1647
2057
 
1648
2058
  scrollDir11W_0: {
1649
2059
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
@@ -1657,12 +2067,30 @@ const g_keyObj = {
1657
2067
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1658
2068
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1659
2069
  },
2070
+ scrollDir11W_3: {
2071
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2072
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2073
+ },
2074
+ scrollDir11W_4: {
2075
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2076
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2077
+ },
1660
2078
 
1661
2079
  scrollDir11i_0: {
1662
2080
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1663
2081
  'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
1664
2082
  'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
1665
2083
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
2084
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
2085
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
2086
+ },
2087
+ scrollDir11i_1: {
2088
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2089
+ 'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
2090
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
2091
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
2092
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
2093
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
1666
2094
  },
1667
2095
 
1668
2096
  scrollDir12_0: {
@@ -1673,9 +2101,19 @@ const g_keyObj = {
1673
2101
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1674
2102
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1675
2103
  },
2104
+ scrollDir12_2: {
2105
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2106
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2107
+ },
2108
+ scrollDir12_3: {
2109
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2110
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2111
+ },
2112
+
1676
2113
  scrollDir13_0: {
1677
2114
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1678
2115
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
2116
+ 'Cross': [-1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1],
1679
2117
  },
1680
2118
  scrollDir14_0: {
1681
2119
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
@@ -1685,6 +2123,15 @@ const g_keyObj = {
1685
2123
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1686
2124
  'Flat': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1687
2125
  },
2126
+ scrollDir14_2: {
2127
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2128
+ 'Flat': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2129
+ },
2130
+ scrollDir14_3: {
2131
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2132
+ 'Flat': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2133
+ },
2134
+
1688
2135
  scrollDir14i_0: {
1689
2136
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1690
2137
  'Flat': [1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1],
@@ -1709,18 +2156,18 @@ const g_keyObj = {
1709
2156
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1710
2157
  'Flat': [1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1711
2158
  },
2159
+ scrollDir17_0: {
2160
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2161
+ 'Cross': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1],
2162
+ 'Split': [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
2163
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
2164
+ },
1712
2165
  scrollDir23_0: {
1713
2166
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1714
2167
  'Flat': [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1715
2168
  },
1716
2169
 
1717
2170
  // プレイアシスト設定
1718
- assistName5: [`Onigiri`],
1719
- assistName9A: [`Left`, `Right`],
1720
- assistName11i: [`Left`, `Right`],
1721
- assistName17: [`Left`, `Right`],
1722
- assistName23: [`Left`, `Right`],
1723
-
1724
2171
  assistPos5_0: {
1725
2172
  'Onigiri': [0, 0, 0, 0, 1],
1726
2173
  },
@@ -1769,8 +2216,18 @@ const g_keyObj = {
1769
2216
  dummy: 0 // ダミー(カンマ抜け落ち防止)
1770
2217
  };
1771
2218
 
2219
+ // デフォルト配列のコピー (g_keyObj.aaa_X から g_keyObj.aaa_Xd を作成)
2220
+ const keyCtrlName = Object.keys(g_keyObj).filter(val => val.startsWith(`keyCtrl`));
2221
+ keyCtrlName.forEach(property => g_keyObj[`${property}d`] = copyArray2d(g_keyObj[property]));
2222
+
2223
+ [`color`, `shuffle`].forEach(type => {
2224
+ const tmpName = Object.keys(g_keyObj).filter(val => val.startsWith(type) && val.endsWith(`_0`));
2225
+ tmpName.forEach(property => g_keyObj[`${property.slice(0, -2)}`] = g_keyObj[property].concat());
2226
+ });
2227
+
1772
2228
  // 特殊キーのコピー種 (simple: 代入、multiple: 配列ごと代入)
1773
2229
  const g_keyCopyLists = {
2230
+ simpleDef: [`blank`, `scale`],
1774
2231
  simple: [`div`, `blank`, `scale`, `keyRetry`, `keyTitleBack`, `transKey`, `scrollDir`, `assistPos`],
1775
2232
  multiple: [`chara`, `color`, `stepRtn`, `pos`, `shuffle`],
1776
2233
  };
@@ -1820,6 +2277,13 @@ const g_dfColorObj = {
1820
2277
 
1821
2278
  setColorType1: [`#6666ff`, `#99ffff`, `#ffffff`, `#ffff99`, `#ff9966`],
1822
2279
  setColorType2: [`#ffffff`, `#9999ff`, `#99ccff`, `#ffccff`, `#ff9999`],
2280
+ setColorType3: [`#ccccff`, `#ccffff`, `#ffffff`, `#ffffcc`, `#ffcc99`],
2281
+ setColorType4: [`#ffffff`, `#ccccff`, `#99ccff`, `#ffccff`, `#ffcccc`],
2282
+
2283
+ setShadowColorType1: [`#00000080`, `#00000080`, `#00000080`, `#00000080`, `#00000080`],
2284
+ setShadowColorType2: [`#00000080`, `#00000080`, `#00000080`, `#00000080`, `#00000080`],
2285
+ setShadowColorType3: [`#6666ff60`, `#33999960`, `#66666660`, `#99993360`, `#cc663360`],
2286
+ setShadowColorType4: [`#66666660`, `#6666ff60`, `#3366cc60`, `#99339960`, `#99333360`],
1823
2287
 
1824
2288
  // フリーズアロー初期色情報
1825
2289
  frzColorInit: [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
@@ -1838,6 +2302,61 @@ const g_dfColorObj = {
1838
2302
  [`#cc99cc`, `#ff99ff`, `#cccc33`, `#999933`],
1839
2303
  [`#ff6666`, `#ff9999`, `#cccc33`, `#999933`]
1840
2304
  ],
2305
+ frzColorType3: [
2306
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2307
+ [`#00ffcc`, `#339999`, `#cccc33`, `#999933`],
2308
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2309
+ [`#cc99ff`, `#9966ff`, `#cccc33`, `#999933`],
2310
+ [`#ff99cc`, `#ff6699`, `#cccc33`, `#999933`]
2311
+ ],
2312
+ frzColorType4: [
2313
+ [`#cccccc`, `#999999`, `#cccc33`, `#999933`],
2314
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2315
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2316
+ [`#cc99cc`, `#ff99ff`, `#cccc33`, `#999933`],
2317
+ [`#ff6666`, `#ff9999`, `#cccc33`, `#999933`]
2318
+ ],
2319
+ };
2320
+
2321
+ const g_dfColorLightObj = {
2322
+ setColorType1: [`#6666ff`, `#66cccc`, `#000000`, `#999966`, `#cc6600`],
2323
+ setColorType2: [`#000000`, `#6666ff`, `#cc0000`, `#cc99cc`, `#cc3366`],
2324
+ setColorType3: [`#000000`, `#000000`, `#000000`, `#000000`, `#000000`],
2325
+ setColorType4: [`#000000`, `#000000`, `#000000`, `#000000`, `#000000`],
2326
+
2327
+ setShadowColorType1: [`#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`],
2328
+ setShadowColorType2: [`#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`],
2329
+ setShadowColorType3: [`#6666ff80`, `#66cccc80`, `#ffffff80`, `#99996680`, `#cc660080`],
2330
+ setShadowColorType4: [`#00000080`, `#6666ff80`, `#cc000080`, `#cc99cc80`, `#cc336680`],
2331
+
2332
+ frzColorType1: [
2333
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2334
+ [`#00ffcc`, `#339999`, `#ffff00`, `#999900`],
2335
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2336
+ [`#cc99ff`, `#9966ff`, `#ffff00`, `#999900`],
2337
+ [`#ff99cc`, `#ff6699`, `#ffff00`, `#999900`]
2338
+ ],
2339
+ frzColorType2: [
2340
+ [`#cccccc`, `#999999`, `#ffff00`, `#999900`],
2341
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2342
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2343
+ [`#cc99cc`, `#ff99ff`, `#ffff00`, `#999900`],
2344
+ [`#ff6666`, `#ff9999`, `#ffff00`, `#999900`]
2345
+ ],
2346
+ frzColorType3: [
2347
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2348
+ [`#00ffcc`, `#339999`, `#ffff00`, `#999900`],
2349
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2350
+ [`#cc99ff`, `#9966ff`, `#ffff00`, `#999900`],
2351
+ [`#ff99cc`, `#ff6699`, `#ffff00`, `#999900`]
2352
+ ],
2353
+ frzColorType4: [
2354
+ [`#cccccc`, `#999999`, `#ffff00`, `#999900`],
2355
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2356
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2357
+ [`#cc99cc`, `#ff99ff`, `#ffff00`, `#999900`],
2358
+ [`#ff6666`, `#ff9999`, `#ffff00`, `#999900`]
2359
+ ],
1841
2360
  };
1842
2361
 
1843
2362
  const g_escapeStr = {
@@ -1856,11 +2375,18 @@ const g_escapeStr = {
1856
2375
  ],
1857
2376
  };
1858
2377
 
1859
- // グラデーションで、カラーコードではないパーセント表記、位置表記系を除外するためのリスト
1860
- // 'at', 'to'のみ、'to left'や'to right'のように方向が入るため、半角スペースまで込みで判断
1861
- const g_cssCheckStr = {
1862
- header: [`at `, `to `, `from`, `circle`, `ellipse`, `closest-`, `farthest-`, `transparent`],
1863
- footer: [`deg`, `rad`, `grad`, `turn`, `repeat`],
2378
+ /**
2379
+ * 文字列部分一致用リスト
2380
+ */
2381
+ const g_checkStr = {
2382
+ // グラデーションで、カラーコードではないパーセント表記、位置表記系を除外するためのリスト
2383
+ // 'at', 'to'のみ、'to left'や'to right'のように方向が入るため、半角スペースまで込みで判断
2384
+ cssHeader: [`at `, `to `, `from`, `circle`, `ellipse`, `closest-`, `farthest-`, `transparent`],
2385
+ cssFooter: [`deg`, `rad`, `grad`, `turn`, `repeat`],
2386
+
2387
+ // 譜面分割あり、譜面番号固定時のみ譜面データを一時クリアする際の条件
2388
+ resetDosHeader: [`gauge`],
2389
+ resetDosFooter: [`_data`, `_change`, `Color`, `customGauge`],
1864
2390
  };
1865
2391
 
1866
2392
  /**
@@ -1869,48 +2395,115 @@ const g_cssCheckStr = {
1869
2395
  * - 記述不正の場合、書き方を2行目に指定すると親切。
1870
2396
  */
1871
2397
  const g_msgInfoObj = {
1872
- W_0001: `お使いのブラウザは動作保証外です。<br>
1873
- Chrome/Opera/Vivaldiなど、WebKit系ブラウザの利用を推奨します。(W-0001)`,
1874
- W_0011: `fileスキームでの動作のため、内蔵の画像データを使用します。(W-0011)<br>
1875
- imgフォルダ以下の画像の変更は適用されません。`,
1876
-
1877
- E_0011: `アーティスト名が未入力です。(E-0011)`,
1878
- E_0012: `曲名情報が未設定です。(E-0012)<br>
1879
- |musicTitle=曲名,アーティスト名,アーティストURL|`,
1880
- E_0021: `譜面情報が未指定か、フォーマットが間違っています。(E-0021)<br>
1881
- |difData=キー数,譜面名,初期速度|`,
1882
- E_0022: `外部譜面ファイルのフォーマットが間違っています。(E-0022)<br>
1883
- function externalDosInit() { g_externalDos = \`(譜面データ)\`; }`,
1884
- E_0023: `譜面情報が未指定です。(E-0023)<br>
1885
- 以下のいずれか、または両方を指定してください。<br>
1886
- &lt;input type="hidden" name="externalDos" id="externalDos" value="dos.txt"&gt;<br>
1887
- &lt;input type="hidden" name="dos" id="dos" value="(譜面データ)"&gt;<br>`,
1888
- E_0031: `楽曲ファイルが未指定か、フォーマットが間違っています。(E-0031)<br>
1889
- |musicUrl=****.mp3|`,
1890
- E_0032: `楽曲ファイルの読み込みに失敗しました。(E-0032)`,
1891
- E_0033: `楽曲ファイルの読み込み中に接続がタイムアウトしました。(E-0033)`,
1892
- E_0034: `楽曲ファイルの読み込み中にエラーが発生しました。(E-0034)`,
1893
- E_0035: `お使いのOSでは指定された楽曲フォーマットに対応していません。(E-0035)`,
1894
- E_0041: `ファイル:{0}の読み込みに失敗しました。(E-0041)<br>`,
1895
- E_0042: `{0}は0より大きい値を指定する必要があります。(E-0042)`,
1896
- E_0051: `Displayオプションのデフォルト設定(XXXXChainOFF)で、<br>指定できない組み合わせが設定されています。(E-0051)`,
1897
-
1898
- E_0101: `新しいキー:{0}の[color]が未定義です。(E-0101)<br>
1899
- |color{0}=0,1,0,1,0,2|`,
1900
- E_0102: `新しいキー:{0}の[chara]が未定義です。(E-0102)<br>
1901
- |chara{0}=arrowA,arrowB,arrowC,arrowD,arrowE,arrowF|`,
1902
- E_0103: `新しいキー:{0}の[stepRtn]が未定義です。(E-0103)<br>
1903
- |stepRtn{0}=0,45,-90,135,180,onigiri|`,
1904
- E_0104: `新しいキー:{0}の[keyCtrl]が未定義です。(E-0104)<br>
1905
- |keyCtrl{0}=75,79,76,80,187,32/0|`,
1906
-
1907
- I_0001: `リザルトデータをクリップボードにコピーしました!`,
1908
- I_0002: `入力したキーは割り当てできません。他のキーを指定してください。`,
1909
- I_0003: `各譜面の明細情報をクリップボードにコピーしました!`,
2398
+
2399
+ };
2400
+
2401
+ const g_lang_msgInfoObj = {
2402
+ Ja: {
2403
+ W_0001: `お使いのブラウザは動作保証外です。<br>
2404
+ Chrome/Opera/Vivaldiなど、WebKit系ブラウザの利用を推奨します。(W-0001)`,
2405
+ W_0011: `fileスキームでの動作のため、内蔵の画像データを使用します。<br>
2406
+ imgフォルダ以下の画像の変更は適用されません。(W-0011)`,
2407
+ W_0012: `現在の設定では音源再生方法により小数の Adjustment が利用できません。<br>
2408
+ また、Fadein を使用した場合は通常よりズレが発生することがあります。<br>
2409
+ 音源ファイルを js/txt 化するか、サーバー上動作とすれば解消します。(W-0012)`,
2410
+
2411
+ E_0011: `アーティスト名が未入力です。(E-0011)`,
2412
+ E_0012: `曲名情報が未設定です。(E-0012)<br>
2413
+ |musicTitle=曲名,アーティスト名,アーティストURL|`,
2414
+ E_0021: `譜面情報が未指定か、フォーマットが間違っています。(E-0021)<br>
2415
+ |difData=キー数,譜面名,初期速度|`,
2416
+ E_0022: `外部譜面ファイルのフォーマットが間違っています。(E-0022)<br>
2417
+ function externalDosInit() { g_externalDos = \`(譜面データ)\`; }`,
2418
+ E_0023: `譜面情報が未指定です。(E-0023)<br>
2419
+ 以下のいずれか、または両方を指定してください。<br>
2420
+ &lt;input type="hidden" name="externalDos" id="externalDos" value="dos.txt"&gt;<br>
2421
+ &lt;input type="hidden" name="dos" id="dos" value="(譜面データ)"&gt;<br>`,
2422
+ E_0031: `楽曲ファイルが未指定か、フォーマットが間違っています。(E-0031)<br>
2423
+ |musicUrl=****.mp3|`,
2424
+ E_0032: `楽曲ファイルの読み込みに失敗しました。(E-0032)`,
2425
+ E_0033: `楽曲ファイルの読み込み中に接続がタイムアウトしました。(E-0033)`,
2426
+ E_0034: `楽曲ファイルの読み込み中にエラーが発生しました。(E-0034)`,
2427
+ E_0035: `お使いのOSでは指定された楽曲フォーマットに対応していません。(E-0035)`,
2428
+ E_0041: `ファイル:{0}の読み込みに失敗しました。(E-0041)<br>`,
2429
+ E_0042: `{0}0より大きい値を指定する必要があります。(E-0042)`,
2430
+ E_0051: `Displayオプションのデフォルト設定(XXXXChainOFF)で、<br>指定できない組み合わせが設定されています。(E-0051)`,
2431
+
2432
+ E_0101: `新しいキー:{0}の[color]が未定義です。(E-0101)<br>
2433
+ |color{0}=0,1,0,1,0,2|`,
2434
+ E_0102: `新しいキー:{0}の[chara]が未定義です。(E-0102)<br>
2435
+ |chara{0}=arrowA,arrowB,arrowC,arrowD,arrowE,arrowF|`,
2436
+ E_0103: `新しいキー:{0}の[stepRtn]が未定義です。(E-0103)<br>
2437
+ |stepRtn{0}=0,45,-90,135,180,onigiri|`,
2438
+ E_0104: `新しいキー:{0}の[keyCtrl]が未定義です。(E-0104)<br>
2439
+ |keyCtrl{0}=75,79,76,80,187,32/0|`,
2440
+
2441
+ I_0001: `リザルトデータをクリップボードにコピーしました!`,
2442
+ I_0002: `入力したキーは割り当てできません。他のキーを指定してください。`,
2443
+ I_0003: `各譜面の明細情報をクリップボードにコピーしました!`,
2444
+ I_0004: `musicUrlが設定されていないため、無音モードで再生します`,
2445
+ },
2446
+ En: {
2447
+ W_0001: `Your browser is not guaranteed to work.<br>
2448
+ We recommend using a WebKit browser such as Chrome, Opera and Vivaldi. (W-0001)`,
2449
+ W_0011: `Uses built-in image data for operation with the file scheme.<br>
2450
+ Changes to the images under the "img" folder will not be applied. (W-0011)`,
2451
+ W_0012: `With the current settings, a decimal of "Adjustment" cannot be used
2452
+ depending on the sound source playback method.<br>
2453
+ Also, if you use "Fadein", it may be out of alignment.<br>
2454
+ It can be solved by converting the sound source file to encoded data (js, txt) or
2455
+ operating it on the server. (W-0012)`,
2456
+
2457
+ E_0011: `The artist name is not set. (E-0011)`,
2458
+ E_0012: `The song title information is not set. (E-0012)<br>
2459
+ |musicTitle=Song title,Artist name,Artist's site URL|`,
2460
+ E_0021: `Music information is not set or the format is incorrect.(E-0021)<br>
2461
+ |difData=Keys' name,chart's name,Specified speed|`,
2462
+ E_0022: `The format of the external music file is incorrect.(E-0022)<br>
2463
+ function externalDosInit() { g_externalDos = \`(Chart data)\`; }`,
2464
+ E_0023: `Music information is not set. (E-0023)<br>
2465
+ Specify either or both of the following:<br>
2466
+ &lt;input type="hidden" name="externalDos" id="externalDos" value="dos.txt"&gt;<br>
2467
+ &lt;input type="hidden" name="dos" id="dos" value="(Chart data)"&gt;<br>`,
2468
+ E_0031: `The music file is not set or the format is incorrect.(E-0031)<br>
2469
+ |musicUrl=****.mp3|`,
2470
+ E_0032: `Failed to read the music file. (E-0032)`,
2471
+ E_0033: `The connection timed out while loading a music file. (E-0033)`,
2472
+ E_0034: `An error occurred while reading the music file. (E-0034)`,
2473
+ E_0035: `Your OS does not support the specified music format. (E-0035)`,
2474
+ E_0041: `Failed to read file: {0}. (E-0041)<br>`,
2475
+ E_0042: `{0} must be greater than 0. (E-0042)`,
2476
+ E_0051: `In the default setting (XXXXChainOFF) of the Display option, <br>a combination that cannot be specified is set. (E-0051)`,
2477
+
2478
+ E_0101: `New key: {0} [color] is not set. (E-0101)<br>
2479
+ |color{0}=0,1,0,1,0,2|`,
2480
+ E_0102: `New key: {0} [chara] is not set. (E-0102)<br>
2481
+ |chara{0}=arrowA,arrowB,arrowC,arrowD,arrowE,arrowF|`,
2482
+ E_0103: `New key: {0} [stepRtn] is not set. (E-0103)<br>
2483
+ |stepRtn{0}=0,45,-90,135,180,onigiri|`,
2484
+ E_0104: `New key: {0} [keyCtrl] is not set. (E-0104)<br>
2485
+ |keyCtrl{0}=75,79,76,80,187,32/0|`,
2486
+
2487
+ I_0001: `Your result data is copied to the clipboard!`,
2488
+ I_0002: `The specified key cannot be assigned. Please specify another key.`,
2489
+ I_0003: `Charts information is copied to the clipboard!`,
2490
+ I_0004: `Play in silence mode because "musicUrl" is not set`,
2491
+ },
2492
+ }
2493
+
2494
+ /**
2495
+ * ショートカット表示のデフォルト値設定
2496
+ */
2497
+ const g_scViewObj = {
2498
+ x: 95,
2499
+ y: 0,
2500
+ w: 40,
2501
+ siz: 12,
2502
+ format: `{0})`,
1910
2503
  };
1911
2504
 
1912
2505
  /**
1913
- * ラベル表示定義
2506
+ * ラベル表示定義(共通部)
1914
2507
  */
1915
2508
  const g_lblNameObj = {
1916
2509
  dancing: `DANCING`,
@@ -1922,12 +2515,6 @@ const g_lblNameObj = {
1922
2515
  config: `CONFIG`,
1923
2516
  result: `RESULT`,
1924
2517
 
1925
- kcDesc: `[{0}:スキップ / {1}:(代替キーのみ)キー無効化]`,
1926
- sdDesc: `[クリックでON/OFFを切替、灰色でOFF]`,
1927
- kcShortcutDesc: `プレイ中ショートカット:「{0}」タイトルバック / 「{1}」リトライ`,
1928
- transKeyDesc: `別キーモードではハイスコア、キーコンフィグ等は保存されません`,
1929
- sdShortcutDesc: `Hid+/Sud+時ショートカット:「pageUp」カバーを上へ / 「pageDown」下へ`,
1930
-
1931
2518
  maker: `Maker`,
1932
2519
  artist: `Artist`,
1933
2520
 
@@ -1961,9 +2548,15 @@ const g_lblNameObj = {
1961
2548
  Fadein: `Fadein`,
1962
2549
  Volume: `Volume`,
1963
2550
 
2551
+ multi: `x`,
2552
+ frame: `f`,
2553
+ percent: `%`,
2554
+ filterLock: `Lock`,
2555
+
1964
2556
  sc_speed: `←→`,
1965
2557
  sc_scroll: `R/↑↓`,
1966
2558
  sc_adjustment: `- +`,
2559
+ sc_keyConfigPlay: g_isMac ? `Del+Enter` : `BS+Enter`,
1967
2560
 
1968
2561
  g_start: `Start`,
1969
2562
  g_border: `Border`,
@@ -1977,15 +2570,6 @@ const g_lblNameObj = {
1977
2570
  s_arrow: `Arrow`,
1978
2571
  s_frz: `Frz`,
1979
2572
 
1980
- s_level: `Level`,
1981
- s_douji: `同時補正`,
1982
- s_tate: `縦連補正`,
1983
- s_cnts: `All Arrows`,
1984
- s_linecnts: `- 矢印 Arrow:<br><br>- 氷矢 Frz:<br><br>- 3つ押し位置 ({0}):`,
1985
- s_print: `データ出力`,
1986
- s_printTitle: `Dancing☆Onigiri レベル計算ツール+++`,
1987
- s_printHeader: `難易度\t同時\t縦連\t総数\t矢印\t氷矢印\tAPM\t時間`,
1988
-
1989
2573
  d_StepZone: `StepZone`,
1990
2574
  d_Judgment: `Judgment`,
1991
2575
  d_FastSlow: `FastSlow`,
@@ -2003,19 +2587,75 @@ const g_lblNameObj = {
2003
2587
  Appearance: `Appearance`,
2004
2588
  Opacity: `Opacity`,
2005
2589
 
2590
+ 'u_x': `x`,
2591
+ 'u_%': `%`,
2592
+
2593
+ 'u_OFF': `OFF`,
2594
+ 'u_ON': `ON`,
2595
+ 'u_Boost': `Boost`,
2596
+ 'u_Brake': `Brake`,
2597
+
2598
+ 'u_Cross': `Cross`,
2599
+ 'u_Split': `Split`,
2600
+ 'u_Alternate': `Alternate`,
2601
+ 'u_Twist': `Twist`,
2602
+ 'u_Asymmetry': `Asymmetry`,
2603
+ 'u_Flat': `Flat`,
2604
+ 'u_R-': `R-`,
2605
+ 'u_Reverse': `Reverse`,
2606
+
2607
+ 'u_Mirror': `Mirror`,
2608
+ 'u_Asym-Mirror': `Asym-Mirror`,
2609
+ 'u_Random': `Random`,
2610
+ 'u_Random+': `Random+`,
2611
+ 'u_S-Random': `S-Random`,
2612
+ 'u_S-Random+': `S-Random+`,
2613
+
2614
+ 'u_ALL': `ALL`,
2615
+ 'u_Onigiri': `Onigiri`,
2616
+ 'u_Left': `Left`,
2617
+ 'u_Right': `Right`,
2618
+ 'u_less': `less`,
2619
+
2620
+ 'u_Original': `Original`,
2621
+ 'u_Heavy': `Heavy`,
2622
+ 'u_NoRecovery': `NoRecovery`,
2623
+ 'u_SuddenDeath': `SuddenDeath`,
2624
+ 'u_Practice': `Practice`,
2625
+ 'u_Light': `Light`,
2626
+
2627
+ 'u_Normal': `Normal`,
2628
+ 'u_Hard': `Hard`,
2629
+ 'u_Easy': `Easy`,
2630
+
2631
+ 'u_Visible': `Visible`,
2632
+ 'u_Hidden': `Hidden`,
2633
+ 'u_Hidden+': `Hidden+`,
2634
+ 'u_Sudden': `Sudden`,
2635
+ 'u_Sudden+': `Sudden+`,
2636
+ 'u_Hid&Sud+': `Hid&Sud+`,
2637
+
2638
+ 'u_Speed': `Speed`,
2639
+ 'u_Density': `Density`,
2640
+ 'u_ToolDif': `ToolDif`,
2641
+
2642
+ 'u_Main': `Main`,
2643
+ 'u_Replaced': `Replaced`,
2644
+
2645
+ 'u_Default': `Default`,
2646
+ 'u_Type0': `Type0`,
2647
+ 'u_Type1': `Type1`,
2648
+ 'u_Type2': `Type2`,
2649
+ 'u_Type3': `Type3`,
2650
+ 'u_Type4': `Type4`,
2651
+
2006
2652
  ConfigType: `ConfigType`,
2007
2653
  ColorType: `ColorType`,
2654
+ ImgType: `ImgType`,
2655
+ ColorGroup: `ColorGr.`,
2656
+ ShuffleGroup: `ShuffleGr.`,
2008
2657
  KeyPattern: `KeyPattern`,
2009
2658
 
2010
- j_ii: "(・∀・)イイ!!",
2011
- j_shakin: "(`・ω・)シャキン",
2012
- j_matari: "( ´∀`)マターリ",
2013
- j_shobon: "(´・ω・`)ショボーン",
2014
- j_uwan: "( `Д´)ウワァン!!",
2015
-
2016
- j_kita: "(゚∀゚)キタ-!!",
2017
- j_iknai: "(・A・)イクナイ",
2018
-
2019
2659
  j_maxCombo: `MaxCombo`,
2020
2660
  j_fmaxCombo: `FreezeCombo`,
2021
2661
  j_score: `Score`,
@@ -2028,65 +2668,207 @@ const g_lblNameObj = {
2028
2668
  fullCombo: `FullCombo!`,
2029
2669
  cleared: `CLEARED!`,
2030
2670
  failed: `FAILED...`,
2031
- };
2032
2671
 
2033
- // 判定名
2034
- let C_JCR_II = g_lblNameObj.j_ii;
2035
- let C_JCR_SHAKIN = g_lblNameObj.j_shakin;
2036
- let C_JCR_MATARI = g_lblNameObj.j_matari;
2037
- let C_JCR_SHOBON = g_lblNameObj.j_shobon;
2038
- let C_JCR_UWAN = g_lblNameObj.j_uwan;
2672
+ rt_Music: `Music`,
2673
+ rt_Difficulty: `Difficulty`,
2674
+ rt_Style: `Playstyle`,
2675
+ rt_Display: `Display`,
2676
+
2677
+ rd_StepZone: `Step`,
2678
+ rd_Judgment: `Judge`,
2679
+ rd_FastSlow: `FS`,
2680
+ rd_LifeGauge: `Life`,
2681
+ rd_Score: `Score`,
2682
+ rd_MusicInfo: `MusicInfo`,
2683
+ rd_FilterLine: `Filter`,
2684
+ rd_Speed: `Speed`,
2685
+ rd_Color: `Color`,
2686
+ rd_Lyrics: `Lyrics`,
2687
+ rd_Background: `Back`,
2688
+ rd_ArrowEffect: `Effect`,
2689
+ rd_Special: `SP`,
2690
+ };
2039
2691
 
2040
- let C_JCR_KITA = g_lblNameObj.j_kita;
2041
- let C_JCR_SFSF = "";
2042
- let C_JCR_IKNAI = g_lblNameObj.j_iknai;
2692
+ /**
2693
+ * ラベル表示定義(言語別)
2694
+ */
2695
+ const g_lang_lblNameObj = {
2696
+ Ja: {
2697
+ kcDesc: `[{0}:スキップ / {1}:(代替キーのみ)キー無効化]`,
2698
+ kcShuffleDesc: `番号をクリックでシャッフルグループ、矢印をクリックでカラーグループを一時的に変更`,
2699
+ sdDesc: `[クリックでON/OFFを切替、灰色でOFF]`,
2700
+ kcShortcutDesc: `プレイ中ショートカット:「{0}」タイトルバック / 「{1}」リトライ`,
2701
+ transKeyDesc: `別キーモードではハイスコア、キーコンフィグ等は保存されません`,
2702
+ sdShortcutDesc: `Hid+/Sud+時ショートカット:「pageUp」カバーを上へ / 「pageDown」下へ`,
2703
+
2704
+ s_level: `Level`,
2705
+ s_douji: `同時補正`,
2706
+ s_tate: `縦連補正`,
2707
+ s_cnts: `All Arrows`,
2708
+ s_linecnts: `- 矢印 Arrow:<br><br>- 氷矢 Frz:<br><br>- 3つ押し位置 ({0}):`,
2709
+ s_print: `データ出力`,
2710
+ s_printTitle: `Dancing☆Onigiri レベル計算ツール+++`,
2711
+ s_printHeader: `難易度\t同時\t縦連\t総数\t矢印\t氷矢印\tAPM\t時間`,
2712
+
2713
+ j_ii: "(・∀・)イイ!!",
2714
+ j_shakin: "(`・ω・)シャキン",
2715
+ j_matari: "( ´∀`)マターリ",
2716
+ j_shobon: "(´・ω・`)ショボーン",
2717
+ j_uwan: "( `Д´)ウワァン!!",
2718
+
2719
+ j_kita: "(゚∀゚)キタ-!!",
2720
+ j_iknai: "(・A・)イクナイ",
2721
+ },
2722
+ En: {
2723
+ kcDesc: `[{0}:Skip / {1}:Key invalidation (Alternate keys only)]`,
2724
+ kcShuffleDesc: `Click the number to change the shuffle group, and click the arrow to change the color.`,
2725
+ sdDesc: `[Click to switch, gray to OFF]`,
2726
+ kcShortcutDesc: `Shortcut during play: "{0}" Return to title / "{1}" Retry the game`,
2727
+ transKeyDesc: `High score, key config, etc. are not saved in another key mode`,
2728
+ sdShortcutDesc: `When "Hidden+" or "Sudden+" select, "pageUp" cover up / "pageDown" cover down`,
2729
+
2730
+ s_level: `Level`,
2731
+ s_douji: `N-push`,
2732
+ s_tate: `Jack Corr.`,
2733
+ s_cnts: `All Arrows`,
2734
+ s_linecnts: `- Arrow:<br><br>- Freeze Arrow:<br><br>- 3 push positions ({0}):`,
2735
+ s_print: `CopyData`,
2736
+ s_printTitle: `Dancing☆Onigiri Level Calculator+++`,
2737
+ s_printHeader: `Level\tN-Push\tJack\tAll\tArrow\tFrz\tAPM\tTime`,
2738
+
2739
+ j_ii: ":D Perfect!!",
2740
+ j_shakin: ":) Great!",
2741
+ j_matari: ":| Good",
2742
+ j_shobon: ":( Bad",
2743
+ j_uwan: ":_( Miss...",
2744
+
2745
+ j_kita: ":) O.K.",
2746
+ j_iknai: ":( N.G.",
2747
+ },
2748
+ };
2043
2749
 
2044
2750
  /**
2045
- * オンマウステキスト、確認メッセージ定義
2751
+ * オンマウステキスト、確認メッセージ定義(共通)
2046
2752
  */
2047
2753
  const g_msgObj = {
2754
+ reload: `説明文の言語を変更します。\nChange the language of the description.`,
2755
+ };
2048
2756
 
2049
- reload: `ページを再読込します。`,
2050
- howto: `ゲーム画面の見方や設定の詳細についてのページへ移動します(GitHub Wiki)。`,
2051
- dataReset: `この作品で保存されているハイスコアや\nAdjustment情報等をリセットします。`,
2052
- github: `Dancing☆Onigiri (CW Edition)のGitHubページへ移動します。`,
2053
- security: `Dancing☆Onigiri (CW Edition)のサポート情報ページへ移動します。`,
2054
-
2055
- dataResetConfirm: `この作品のローカル設定をクリアします。よろしいですか?\n(ハイスコアやAdjustment等のデータがクリアされます)`,
2056
- keyResetConfirm: `キーを初期配置に戻します。よろしいですか?`,
2057
-
2058
- difficulty: `譜面を選択します。`,
2059
- speed: `矢印の流れる速度を設定します。`,
2060
- motion: `矢印の速度を一定ではなく、\n変動させるモーションをつけるか設定します。`,
2061
- reverse: `矢印の流れる向きを設定します。`,
2062
- scroll: `各レーンのスクロール方向をパターンに沿って設定します。`,
2063
- shuffle: `譜面を左右反転したり、ランダムにします。\nランダムにした場合は別譜面扱いとなり、ハイスコアは保存されません。`,
2064
- autoPlay: `オートプレイや一部キーを自動で打たせる設定を行います。\nオートプレイ時はハイスコアを保存しません。`,
2065
- gauge: `クリア条件を設定します。`,
2066
- adjustment: `タイミングにズレを感じる場合、\n数値を変えることでズレを直すことができます。`,
2067
- fadein: `譜面を途中から再生します。\n途中から開始した場合はハイスコアを保存しません。`,
2068
- volume: `ゲーム内の音量を設定します。`,
2069
-
2070
- graph: `速度変化や譜面密度状況、\n譜面の難易度など譜面の詳細情報を表示します。`,
2071
- dataSave: `ハイスコア、リバース設定、\nキーコンフィグの保存の有無を設定します。`,
2072
- toDisplay: `プレイ画面上のオブジェクトの\n表示・非表示(一部透明度)を設定します。`,
2073
- toSettings: `SETTINGS画面へ戻ります。`,
2074
-
2075
- d_stepzone: `ステップゾーンの表示`,
2076
- d_judgment: `判定キャラクタ・コンボの表示`,
2077
- d_fastslow: `Fast/Slow表示`,
2078
- d_lifegauge: `ライフゲージの表示`,
2079
- d_score: `現時点の判定数を表示`,
2080
- d_musicinfo: `音楽情報(時間表示含む)`,
2081
- d_filterline: `Hidden+, Sudden+使用時のフィルターの境界線表示`,
2082
- d_speed: `途中変速、個別加速の有効化設定`,
2083
- d_color: `色変化の有効化設定`,
2084
- d_lyrics: `歌詞表示の有効化設定`,
2085
- d_background: `背景・マスクモーションの有効化設定`,
2086
- d_arroweffect: `矢印・フリーズアローモーションの有効化設定`,
2087
- d_special: `作品固有の特殊演出の有効化設定`,
2088
-
2089
- appearance: `流れる矢印の見え方を制御します。`,
2090
- opacity: `判定キャラクタ、コンボ数、Fast/Slow、Hidden+/Sudden+の\n境界線表示の透明度を設定します。`,
2757
+ /**
2758
+ * オンマウステキスト、確認メッセージ定義(言語別)
2759
+ */
2760
+ const g_lang_msgObj = {
2761
+
2762
+ Ja: {
2763
+ howto: `ゲーム画面の見方や設定の詳細についてのページへ移動します(GitHub Wiki)。`,
2764
+ dataReset: `この作品で保存されているハイスコアや\nAdjustment情報等をリセットします。`,
2765
+ github: `Dancing☆Onigiri (CW Edition)のGitHubページへ移動します。`,
2766
+ security: `Dancing☆Onigiri (CW Edition)のサポート情報ページへ移動します。`,
2767
+
2768
+ dataResetConfirm: `この作品のローカル設定をクリアします。よろしいですか?\n(ハイスコアやAdjustment等のデータがクリアされます)`,
2769
+ keyResetConfirm: `キーを初期配置に戻します。よろしいですか?`,
2770
+
2771
+ difficulty: `譜面を選択します。`,
2772
+ speed: `矢印の流れる速度を設定します。\n外側のボタンは1x単位、内側は0.25x単位で変更できます。`,
2773
+ motion: `矢印の速度を一定ではなく、\n変動させるモーションをつけるか設定します。`,
2774
+ reverse: `矢印の流れる向きを設定します。`,
2775
+ scroll: `各レーンのスクロール方向をパターンに沿って設定します。\nReverse:ONでスクロール方向を反転します。`,
2776
+ shuffle: `譜面を左右反転したり、ランダムにします。\nランダムにした場合は別譜面扱いとなり、ハイスコアは保存されません。`,
2777
+ autoPlay: `オートプレイや一部キーを自動で打たせる設定を行います。\nオートプレイ時はハイスコアを保存しません。`,
2778
+ gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量`,
2779
+ adjustment: `タイミングにズレを感じる場合、\n数値を変えることでフレーム単位のズレを直すことができます。\n外側のボタンは5f刻み、真ん中は1f刻み、内側は0.5f刻みで調整できます。`,
2780
+ fadein: `譜面を途中から再生します。\n途中から開始した場合はハイスコアを保存しません。`,
2781
+ volume: `ゲーム内の音量を設定します。`,
2782
+
2783
+ graph: `速度変化や譜面密度状況、\n譜面の難易度など譜面の詳細情報を表示します。`,
2784
+ dataSave: `ハイスコア、リバース設定、\nキーコンフィグの保存の有無を設定します。`,
2785
+ toDisplay: `プレイ画面上のオブジェクトの\n表示・非表示(一部透明度)を設定します。`,
2786
+ toSettings: `SETTINGS画面へ戻ります。`,
2787
+
2788
+ d_stepzone: `ステップゾーンの表示`,
2789
+ d_judgment: `判定キャラクタ・コンボの表示`,
2790
+ d_fastslow: `Fast/Slow表示`,
2791
+ d_lifegauge: `ライフゲージの表示`,
2792
+ d_score: `現時点の判定数を表示`,
2793
+ d_musicinfo: `音楽情報(時間表示含む)`,
2794
+ d_filterline: `Hidden+, Sudden+使用時のフィルターの境界線表示`,
2795
+ d_speed: `途中変速、個別加速の有効化設定`,
2796
+ d_color: `色変化の有効化設定`,
2797
+ d_lyrics: `歌詞表示の有効化設定`,
2798
+ d_background: `背景・マスクモーションの有効化設定`,
2799
+ d_arroweffect: `矢印・フリーズアローモーションの有効化設定`,
2800
+ d_special: `作品固有の特殊演出の有効化設定`,
2801
+
2802
+ appearance: `流れる矢印の見え方を制御します。`,
2803
+ opacity: `判定キャラクタ、コンボ数、Fast/Slow、Hidden+/Sudden+の\n境界線表示の透明度を設定します。`,
2804
+
2805
+ configType: `キーコンフィグ対象を切り替えます。\n[Main] メインキーのみ, [Replaced] 代替キーのみ, [ALL] 全て`,
2806
+ colorType: `矢印色の配色パターンを変更します。\nType1~4選択時は色変化が自動でOFFになります。\n[Type0] グラデーション切替, [Type1~4] デフォルトパターン`,
2807
+ imgType: `矢印・フリーズアローなどのオブジェクトの見た目を変更します。`,
2808
+ colorGroup: `矢印・フリーズアロー色グループの割り当てパターンを変更します。`,
2809
+ shuffleGroup: `Mirror/Asym-Mirror/Random/S-Random選択時、シャッフルするグループを変更します。\n矢印の上にある同じ数字同士でシャッフルします。`,
2810
+ },
2811
+
2812
+ En: {
2813
+ howto: `Go to the page about the game screen and settings at GitHub Wiki.`,
2814
+ dataReset: `Resets the high score, adjustment information, etc. saved in this game.`,
2815
+ github: `Go to the GitHub page of Dancing Onigiri "CW Edition".`,
2816
+ security: `Go to the support information page for Dancing Onigiri "CW Edition".`,
2817
+
2818
+ dataResetConfirm: `Delete the local settings in this game. Is it OK?\n(High score, adjustment, volume and some settings will be initialized)`,
2819
+ keyResetConfirm: `Resets the assigned key to the initial state. Is it OK?`,
2820
+
2821
+ difficulty: `Select a chart.`,
2822
+ speed: `Set the speed of the sequences.\nThe outer button can be changed in 1x increments and the inner button in 0.25x increments.`,
2823
+ motion: `Set whether to turn on acceleration or deceleration\nin the middle of the sequence.`,
2824
+ reverse: `Set the flow direction of the sequences.`,
2825
+ scroll: `Set the scroll direction for each lane according to the pattern.\nIf "Reverse:ON" sets, reverse the scroll direction.`,
2826
+ shuffle: `Flip the chart left and right or make it random.\nIf you make it random, it will be treated as other charts and the high score will not be saved.`,
2827
+ autoPlay: `Set to auto play and to hit some keys automatically.\nHigh score is not saved during auto play.`,
2828
+ gauge: `Set the clear condition.\n[Start] initial value, [Border] borderline value (hyphen means zero),\n[Recovery] recovery amount, [Damage] damage amount`,
2829
+ adjustment: `If you feel a shift in timing, \nyou can correct the shift in frame units by changing the value.\nThe outer button can be adjusted in 5 frame increments, the middle in 1 frame increments, \nand the inner button in 0.5 frame increments.`,
2830
+ fadein: `Plays the chart from the middle.\nIf you start in the middle, the high score will not be saved.`,
2831
+ volume: `Set the in-game volume.`,
2832
+
2833
+ graph: `Displays detailed information about the chart, such as sequences' speed changes, chart's density status, and chart's difficulty.`,
2834
+ dataSave: `Set whether to save the high score, reverse setting, and key config.`,
2835
+ toDisplay: `Set the display or non-display (partial transparency) of objects on the play screen.`,
2836
+ toSettings: `Return to the SETTINGS screen.`,
2837
+
2838
+ d_stepzone: `Display step zone`,
2839
+ d_judgment: `Display judgment and combo counts`,
2840
+ d_fastslow: `Display fast and slow `,
2841
+ d_lifegauge: `Display lifegauge`,
2842
+ d_score: `Display the current number of judgments`,
2843
+ d_musicinfo: `Display the music credits and current time`,
2844
+ d_filterline: `Filter border display when using "Hidden+" or "Sudden+"`,
2845
+ d_speed: `Enable speed change settings`,
2846
+ d_color: `Enable color change settings`,
2847
+ d_lyrics: `Enable lyrics display`,
2848
+ d_background: `Enable background images and animations`,
2849
+ d_arroweffect: `Enable sequences' animations`,
2850
+ d_special: `Enable setting of special effects to the work`,
2851
+
2852
+ appearance: `Controls how the flowing sequences look.`,
2853
+ opacity: `Set the transparency of some objects such as judgment, combo counts, fast and slow`,
2854
+
2855
+ configType: `Switch the key config target.\n[Main] main keys only, [Replaced] alternate keys only, [ALL] all keys`,
2856
+ colorType: `Change the color scheme of the sequences color.\nWhen Type 1 to 4 are selected, the color change is automatically turned off.\n[Type0] Switch the sequences color gradations, [Type1~4] default color scheme`,
2857
+ imgType: `Change the appearance of sequences.`,
2858
+ colorGroup: `Change the sequences color group assignment pattern.`,
2859
+ shuffleGroup: `Change the shuffle group when Mirror, Asym-Mirror, Random or S-Random are selected.\nShuffle with the same numbers listed above.`,
2860
+ },
2091
2861
 
2092
2862
  };
2863
+
2864
+ /**
2865
+ * エラーメッセージ管理
2866
+ */
2867
+ const g_errMsgObj = {
2868
+ title: [],
2869
+ option: [],
2870
+ settingsDisplay: [],
2871
+ loading: [],
2872
+ main: [],
2873
+ result: [],
2874
+ };