danoniplus 19.5.14 → 25.5.6

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 +24 -16
  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 +2964 -2404
  57. package/js/lib/danoni_constants.js +1540 -479
  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 +77 -2
  61. package/jsconfig.json +1 -1
  62. package/package.json +22 -22
  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 (v25.5.1)
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,51 +92,99 @@ 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}`;
124
113
  };
125
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;
185
+ };
186
+ reloadImgObj();
187
+
126
188
  // g_imgObjのうち、初期読込するリスト
127
189
  const g_imgInitList = [
128
190
  `arrow`, `arrowShadow`, `onigiri`, `onigiriShadow`,
@@ -135,16 +197,16 @@ let g_imgExtensions = [`png`, `gif`, `bmp`, `jpg`, `jpeg`, `svg`];
135
197
  // オブジェクト種別
136
198
  const g_typeLists = {
137
199
  arrow: [`arrow`, `dummyArrow`, `frz`, `dummyFrz`],
138
- color: [`color`, `acolor`, `shadowColor`, `ashadowColor`],
200
+ color: [`color`, `acolor`],
139
201
  frzColor: [`Normal`, `NormalBar`, `Hit`, `HitBar`],
140
202
  dataList: [
141
203
  `Arrow`, `FrzArrow`, `FrzLength`,
142
- `Color`, `ColorCd`, `FColor`, `FColorCd`,
143
- `AColor`, `AColorCd`, `FAColor`, `FAColorCd`,
144
- `shadowColor`, `shadowColorCd`, `FshadowColor`, `FshadowColorCd`,
145
- `AshadowColor`, `AshadowColorCd`, `FAshadowColor`, `FAshadowColorCd`,
204
+ `Color`, `ColorCd`,
205
+ `FColorNormal`, `FColorNormalCd`, `FColorNormalBar`, `FColorNormalBarCd`,
206
+ `FColorHit`, `FColorHitCd`, `FColorHitBar`, `FColorHitBarCd`,
146
207
  `ArrowCssMotion`, `ArrowCssMotionName`,
147
208
  `FrzCssMotion`, `FrzCssMotionName`,
209
+ `ArrowColorChangeAll`, `FrzColorChangeAll`,
148
210
  ],
149
211
  };
150
212
 
@@ -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,127 @@ 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],
379
490
 
380
- let g_opacitys = [10, 25, 50, 75, 100];
381
- let g_opacityNum = g_opacitys.length - 1;
491
+ appearances: [`Visible`, `Hidden`, `Hidden+`, `Sudden`, `Sudden+`, `Hid&Sud+`],
492
+ appearanceNum: 0,
382
493
 
383
- let g_scoreDetails = [`Speed`, `Density`, `ToolDif`];
384
- let g_scoreDetailNum = 0;
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
+ };
502
+
503
+ g_settings.volumeNum = g_settings.volumes.length - 1;
504
+ g_settings.opacityNum = g_settings.opacitys.length - 1;
505
+
506
+ /**
507
+ * 設定画面間移動
508
+ */
509
+ const g_jumpSettingWindow = {
510
+ option: _ => settingsDisplayInit(),
511
+ difSelector: _ => settingsDisplayInit(),
512
+ settingsDisplay: _ => optionInit(),
513
+ };
385
514
 
386
- let g_keycons = {
515
+ /**
516
+ * シャッフル適用関数
517
+ */
518
+ const g_shuffleFunc = {
519
+ 'OFF': _ => true,
520
+ 'Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup),
521
+ 'Asym-Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup, true),
522
+ 'Random': (keyNum, shuffleGroup) => applyRandom(keyNum, shuffleGroup),
523
+ 'Random+': keyNum => applyRandom(keyNum, [[...Array(keyNum).keys()]]),
524
+ 'S-Random': (keyNum, shuffleGroup) => {
525
+ applySRandom(keyNum, shuffleGroup, `arrow`, `frz`);
526
+ applySRandom(keyNum, shuffleGroup, `dummyArrow`, `dummyFrz`);
527
+ },
528
+ 'S-Random+': keyNum => {
529
+ applySRandom(keyNum, [[...Array(keyNum).keys()]], `arrow`, `frz`);
530
+ applySRandom(keyNum, [[...Array(keyNum).keys()]], `dummyArrow`, `dummyFrz`);
531
+ },
532
+ };
533
+
534
+ const g_keycons = {
387
535
  configTypes: [`Main`, `Replaced`, `ALL`],
388
- configFunc: [resetCursorMain, resetCursorReplaced, resetCursorALL],
389
536
  configTypeNum: 0,
390
537
 
391
- colorTypes: [`Default`, `Type0`, `Type1`, `Type2`],
392
- colorDefs: [C_FLG_ON, C_FLG_ON, C_FLG_OFF, C_FLG_OFF],
538
+ colorTypes: [`Default`, `Type0`, `Type1`, `Type2`, `Type3`, `Type4`],
539
+ colorDefs: [C_FLG_ON, C_FLG_ON, C_FLG_OFF, C_FLG_OFF, C_FLG_OFF, C_FLG_OFF],
393
540
  colorTypeNum: 0,
541
+
542
+ imgTypes: [],
543
+ imgTypeNum: 0,
544
+
545
+ colorGroupNum: 0,
546
+ shuffleGroupNum: 0,
394
547
  };
395
548
 
396
549
  let g_displays = [`stepZone`, `judgment`, `fastSlow`, `lifeGauge`, `score`, `musicInfo`, `filterLine`,
@@ -407,67 +560,39 @@ let g_sHeight;
407
560
 
408
561
  const g_hidSudObj = {
409
562
  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,
563
+
564
+ 'Visible': 1,
565
+ 'Hidden': 0,
566
+ 'Hidden+': 0,
567
+ 'Sudden': 1,
568
+ 'Sudden+': 1,
569
+ 'Hid&Sud+': 1,
570
+
571
+ filterPosDefault: {
572
+ 'Visible': 0,
573
+ 'Hidden': 50,
574
+ 'Sudden': 40,
575
+ },
576
+ pgDown: {
577
+ 'Hidden+': { OFF: `PageDown`, ON: `PageUp`, },
578
+ 'Sudden+': { OFF: `PageUp`, ON: `PageDown`, },
579
+ 'Hid&Sud+': { OFF: `PageUp`, ON: `PageDown`, },
580
+ },
581
+ pgUp: {
582
+ 'Hidden+': { OFF: `PageUp`, ON: `PageDown`, },
583
+ 'Sudden+': { OFF: `PageDown`, ON: `PageUp`, },
584
+ 'Hid&Sud+': { OFF: `PageDown`, ON: `PageUp`, },
585
+ },
586
+ std: {
587
+ 'Hidden+': { OFF: 0, ON: 1, },
588
+ 'Sudden+': { OFF: 1, ON: 0, },
589
+ 'Hid&Sud+': { OFF: 1, ON: 0, },
590
+ },
452
591
  };
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
592
 
462
593
  // ステップゾーン位置、到達距離(後で指定)
463
594
  const C_STEP_Y = 70;
464
595
  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
596
 
472
597
  const g_posObj = {
473
598
  stepY: 70,
@@ -499,7 +624,7 @@ for (let j = 0; j < 255; j++) {
499
624
  // キー表示用
500
625
  g_kCd[0] = `- - -`;
501
626
  g_kCd[1] = `Unknown`;
502
- g_kCd[8] = `BackSpace`;
627
+ g_kCd[8] = (g_isMac ? `Delete` : `BackSpace`);
503
628
  g_kCd[9] = `Tab`;
504
629
  g_kCd[12] = `Clear`;
505
630
  g_kCd[13] = `Enter`;
@@ -724,18 +849,31 @@ g_kCdN[226] = `IntlRo`;
724
849
  g_kCdN[229] = `Backquote`;
725
850
  g_kCdN[240] = `CapsLock`;
726
851
 
852
+ const g_kCdNameObj = {
853
+ shiftKey: `ShiftLeft`,
854
+ metaKey: `MetaLeft`,
855
+ };
856
+
727
857
  // 画面別ショートカット
728
858
  const g_shortcutObj = {
729
859
  title: {
730
860
  Enter: { id: `btnStart` },
861
+ NumpadEnter: { id: `btnStart` },
862
+ Slash: { id: `btnHelp`, reset: true },
863
+ F1: { id: `btnHelp`, reset: true },
864
+ ControlLeft_KeyC: { id: `` },
865
+ KeyC: { id: `btnComment` },
731
866
  },
732
867
  option: {
733
868
  ShiftLeft_KeyD: { id: `lnkDifficultyL` },
734
869
  KeyD: { id: `lnkDifficultyR` },
735
870
  ShiftLeft_ArrowRight: { id: `lnkSpeedR` },
871
+ AltLeft_ArrowRight: { id: `lnkSpeedHR` },
736
872
  ArrowRight: { id: `lnkSpeedRR` },
737
873
  ShiftLeft_ArrowLeft: { id: `lnkSpeedL` },
874
+ AltLeft_ArrowLeft: { id: `lnkSpeedHL` },
738
875
  ArrowLeft: { id: `lnkSpeedLL` },
876
+ KeyL: { id: `lnkDifficulty` },
739
877
 
740
878
  ShiftLeft_KeyM: { id: `lnkMotionL` },
741
879
  KeyM: { id: `lnkMotionR` },
@@ -750,20 +888,29 @@ const g_shortcutObj = {
750
888
  ShiftLeft_KeyG: { id: `lnkGaugeL` },
751
889
  KeyG: { id: `lnkGaugeR` },
752
890
 
891
+ AltLeft_ShiftLeft_Semicolon: { id: `lnkAdjustmentHR` },
753
892
  ShiftLeft_Semicolon: { id: `lnkAdjustmentR` },
893
+ AltLeft_Semicolon: { id: `lnkAdjustmentRRR` },
754
894
  Semicolon: { id: `lnkAdjustmentRR` },
895
+ AltLeft_ShiftLeft_Minus: { id: `lnkAdjustmentHL` },
755
896
  ShiftLeft_Minus: { id: `lnkAdjustmentL` },
897
+ AltLeft_Minus: { id: `lnkAdjustmentLLL` },
756
898
  Minus: { id: `lnkAdjustmentLL` },
757
899
 
900
+ AltLeft_ShiftLeft_NumpadAdd: { id: `lnkAdjustmentHR` },
758
901
  ShiftLeft_NumpadAdd: { id: `lnkAdjustmentR` },
902
+ AltLeft_NumpadAdd: { id: `lnkAdjustmentRRR` },
759
903
  NumpadAdd: { id: `lnkAdjustmentRR` },
904
+ AltLeft_ShiftLeft_NumpadSubtract: { id: `lnkAdjustmentHL` },
760
905
  ShiftLeft_NumpadSubtract: { id: `lnkAdjustmentL` },
906
+ AltLeft_NumpadSubtract: { id: `lnkAdjustmentLLL` },
761
907
  NumpadSubtract: { id: `lnkAdjustmentLL` },
762
908
 
763
909
  ShiftLeft_KeyV: { id: `lnkVolumeL` },
764
910
  KeyV: { id: `lnkVolumeR` },
765
911
 
766
912
  KeyI: { id: `btnGraph` },
913
+ ShiftLeft_KeyQ: { id: `lnkScoreDetailB` },
767
914
  KeyQ: { id: `lnkScoreDetail` },
768
915
  KeyP: { id: `lnkDifInfo` },
769
916
  KeyZ: { id: `btnSave` },
@@ -771,6 +918,22 @@ const g_shortcutObj = {
771
918
  Escape: { id: `btnBack` },
772
919
  Space: { id: `btnKeyConfig` },
773
920
  Enter: { id: `btnPlay` },
921
+ NumpadEnter: { id: `btnPlay` },
922
+ ShiftLeft_Tab: { id: `btnBack` },
923
+ Tab: { id: `btnDisplay` },
924
+ },
925
+ difSelector: {
926
+ ShiftLeft_KeyD: { id: `lnkDifficultyL` },
927
+ KeyD: { id: `lnkDifficultyR` },
928
+ KeyR: { id: `difRandom` },
929
+ KeyL: { id: `lnkDifficulty` },
930
+ ArrowDown: { id: `btnDifD` },
931
+ ArrowUp: { id: `btnDifU` },
932
+
933
+ Escape: { id: `btnBack` },
934
+ Space: { id: `btnKeyConfig` },
935
+ Enter: { id: `lnkDifficulty` },
936
+ NumpadEnter: { id: `lnkDifficulty` },
774
937
  ShiftLeft_Tab: { id: `btnBack` },
775
938
  Tab: { id: `btnDisplay` },
776
939
  },
@@ -808,18 +971,27 @@ const g_shortcutObj = {
808
971
  NumpadSubtract: { id: `lnkarrowEffect` },
809
972
  NumpadDivide: { id: `lnkspecial` },
810
973
 
974
+ KeyZ: { id: `btnSave` },
811
975
  Escape: { id: `btnBack` },
812
976
  Space: { id: `btnKeyConfig` },
813
977
  Enter: { id: `btnPlay` },
978
+ NumpadEnter: { id: `btnPlay` },
814
979
  ShiftLeft_Tab: { id: `btnBack` },
815
980
  Tab: { id: `btnSettings` },
816
981
  },
817
982
  keyConfig: {
818
983
  Escape: { id: `btnBack` },
984
+ Backspace_Enter: { id: `btnPlay` },
985
+ Backspace_NumpadEnter: { id: `btnPlay` },
986
+ },
987
+ loadingIos: {
988
+ Enter: { id: `btnPlay` },
989
+ NumpadEnter: { id: `btnPlay` },
819
990
  },
820
991
  result: {
821
992
  Escape: { id: `btnBack` },
822
993
  ShiftLeft_Tab: { id: `btnBack` },
994
+ ControlLeft_KeyC: { id: `` },
823
995
  KeyC: { id: `btnCopy`, reset: true },
824
996
  KeyT: { id: `btnTweet`, reset: true },
825
997
  KeyG: { id: `btnGitter`, reset: true },
@@ -827,20 +999,44 @@ const g_shortcutObj = {
827
999
  },
828
1000
  };
829
1001
 
830
- // ショートカットキーの有効化時間(ミリ秒)※結果画面のみ利用
831
- const g_shortcutWaitTime = {
832
- result: 2000,
1002
+ // ボタン・ショートカットキーの有効化時間(フレーム数)
1003
+ // b_frame: ボタンの有効化フレーム数、s_frame: ショートカットキーの有効化フレーム数
1004
+ // initial: 初回のみ有効化時間を設定する場合、trueを設定
1005
+ const g_btnWaitFrame = {
1006
+ initial: { b_frame: 0, s_frame: 0 },
1007
+ title: { b_frame: 0, s_frame: 0 },
1008
+ option: { b_frame: 0, s_frame: 0, initial: true },
1009
+ difSelector: { b_frame: 0, s_frame: 0 },
1010
+ settingsDisplay: { b_frame: 0, s_frame: 0 },
1011
+ keyConfig: { b_frame: 0, s_frame: 30 },
1012
+ loading: { b_frame: 0, s_frame: 0 },
1013
+ loadingIos: { b_frame: 0, s_frame: 0 },
1014
+ main: { b_frame: 0, s_frame: 0 },
1015
+ result: { b_frame: 0, s_frame: 120 },
833
1016
  };
834
1017
 
835
1018
  // 主要ボタンのリスト
836
1019
  const g_btnPatterns = {
837
- title: { Start: 0 },
1020
+ title: { Start: 0, Comment: -10 },
838
1021
  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 },
1022
+ difSelector: {},
1023
+ settingsDisplay: { Back: 0, KeyConfig: 0, Play: 0, Save: -10, Settings: -5 },
1024
+ loadingIos: { Play: 0 },
1025
+ keyConfig: { Back: -3, Play: 0 },
841
1026
  result: { Back: -5, Copy: -5, Tweet: -5, Gitter: -5, Retry: 0 },
842
1027
  };
843
1028
 
1029
+ // メイン画面以外でキーリピートを許可しないキーを設定
1030
+ const g_unrepeatObj = {
1031
+ key: [`Enter`, `Backspace`, `Delete`, `Escape`, `NumpadEnter`, `Tab`],
1032
+ page: [`keyConfig`, `loading`, `loadingIos`],
1033
+ };
1034
+
1035
+ // メイン画面でキーリピートを許可するキーを設定
1036
+ const g_mainRepeatObj = {
1037
+ key: [`PageDown`, `PageUp`],
1038
+ };
1039
+
844
1040
  // CSS名称
845
1041
  const g_cssObj = {
846
1042
  title_base: `title_base`,
@@ -848,6 +1044,7 @@ const g_cssObj = {
848
1044
  settings_DifSelector: `settings_DifSelector`,
849
1045
  settings_Disabled: `settings_Disabled`,
850
1046
  settings_FadeinBar: `settings_FadeinBar`,
1047
+ settings_Shuffle: `settings_Shuffle`,
851
1048
 
852
1049
  keyconfig_warning: `keyconfig_warning`,
853
1050
  keyconfig_ConfigType: `keyconfig_ConfigType`,
@@ -903,6 +1100,7 @@ const g_cssObj = {
903
1100
 
904
1101
  button_Start: `button_Start`,
905
1102
  button_Default: `button_Default`,
1103
+ button_Default_NoColor: `button_Default_NoColor`,
906
1104
  button_Mini: `button_Mini`,
907
1105
  button_Back: `button_Back`,
908
1106
  button_Setting: `button_Setting`,
@@ -931,6 +1129,8 @@ const g_keyObj = {
931
1129
  currentKey: 7,
932
1130
  currentPtn: 0,
933
1131
 
1132
+ prevKey: `Dummy`,
1133
+
934
1134
  // キー別ヘッダー
935
1135
  // - 譜面データ中に出てくる矢印(ノーツ)の種類と順番(ステップゾーン表示順)を管理する。
936
1136
  // - ここで出てくる順番は、この後のstepRtn, keyCtrlとも対応している。
@@ -979,6 +1179,8 @@ const g_keyObj = {
979
1179
  `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
980
1180
  chara11L_1: [`sleft`, `sdown`, `sup`, `sright`,
981
1181
  `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1182
+ chara11i_1: [`left`, `down`, `gor`, `up`, `right`, `space`,
1183
+ `sleft`, `sdown`, `siyo`, `sup`, `sright`],
982
1184
  chara11W_1: [`sleft`, `sdown`, `sup`, `sright`,
983
1185
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
984
1186
  chara12_1: [`sleft`, `sdown`, `sup`, `sright`,
@@ -993,7 +1195,7 @@ const g_keyObj = {
993
1195
  `bleft`, `bdown`, `bup`, `bright`, `cleft`, `cdown`, `cup`, `cright`],
994
1196
 
995
1197
  chara5_2: [`left`, `down`, `space`, `up`, `right`],
996
- chara7_2: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1198
+ chara7_2: [`left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
997
1199
  chara8_2: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
998
1200
  chara9A_2: [`left`, `down`, `up`, `right`, `space`, `sleft`, `sdown`, `sup`, `sright`],
999
1201
  chara9B_2: [`left`, `down`, `up`, `right`, `space`, `sleft`, `sdown`, `sup`, `sright`],
@@ -1003,6 +1205,10 @@ const g_keyObj = {
1003
1205
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1004
1206
  chara11W_2: [`sleft`, `sdown`, `sup`, `sright`,
1005
1207
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1208
+ chara12_2: [`sleft`, `sdown`, `sup`, `sright`,
1209
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1210
+ chara14_2: [`sleftdia`, `sleft`, `sdown`, `sup`, `sright`, `srightdia`,
1211
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1006
1212
 
1007
1213
  chara7_3: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1008
1214
  chara8_3: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
@@ -1012,112 +1218,216 @@ const g_keyObj = {
1012
1218
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1013
1219
  chara11L_3: [`sleft`, `sdown`, `sup`, `sright`,
1014
1220
  `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1221
+ chara11W_3: [`sleft`, `sdown`, `sup`, `sright`,
1222
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1223
+ chara12_3: [`sleft`, `sdown`, `sup`, `sright`,
1224
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1225
+ chara14_3: [`sleftdia`, `sleft`, `sdown`, `sup`, `sright`, `srightdia`,
1226
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1227
+
1228
+ chara7_4: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1229
+ chara8_4: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1230
+ chara9A_4: [`left`, `down`, `gor`, `up`, `right`, `space`,
1231
+ `sleft`, `sdown`, `siyo`, `sup`, `sright`],
1232
+ chara11_4: [`sleft`, `sdown`, `sup`, `sright`,
1233
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1234
+ chara11L_4: [`sleft`, `sdown`, `sup`, `sright`,
1235
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1236
+ chara11W_4: [`sleft`, `sdown`, `sup`, `sright`,
1237
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1015
1238
 
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
- // シャッフルグループ
1239
+ chara7_5: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1240
+ chara8_5: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1241
+ chara11_5: [`sleft`, `sdown`, `sup`, `sright`,
1242
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1243
+ chara11L_5: [`sleft`, `sdown`, `sup`, `sright`,
1244
+ `oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1245
+
1246
+ chara7_6: [`oni`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1247
+
1248
+ // カラーパターン(パターン1)
1249
+ color5_0_0: [0, 0, 0, 0, 2],
1250
+ color7_0_0: [0, 1, 0, 2, 0, 1, 0],
1251
+ color7i_0_0: [2, 2, 2, 0, 0, 0, 0],
1252
+ color8_0_0: [0, 1, 0, 2, 0, 1, 0, 2],
1253
+ color9A_0_0: [0, 0, 0, 0, 2, 3, 3, 3, 3],
1254
+ color9B_0_0: [1, 0, 1, 0, 2, 0, 1, 0, 1],
1255
+ color9i_0_0: [0, 0, 0, 0, 2, 2, 2, 2, 2],
1256
+ color11_0_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1257
+ color11L_0_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1258
+ color11W_0_0: [2, 3, 3, 2, 0, 1, 0, 2, 0, 1, 0],
1259
+ color11i_0_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1260
+ color12_0_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1261
+ color13_0_0: [4, 4, 4, 4, 0, 0, 0, 0, 2, 3, 3, 3, 3],
1262
+ color14_0_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1263
+ color14i_0_0: [2, 2, 2, 3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1264
+ color15A_0_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1265
+ color15B_0_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1266
+ color16i_0_0: [2, 2, 2, 3, 3, 3, 3, 1, 0, 1, 0, 2, 0, 1, 0, 1],
1267
+ color17_0_0: [0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4],
1268
+ 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],
1269
+
1270
+ color5_1_0: [2, 0, 0, 0, 0],
1271
+ color7_1_0: [0, 1, 0, 2, 0, 1, 0],
1272
+ color8_1_0: [2, 0, 1, 0, 2, 0, 1, 0],
1273
+ color9A_1_0: [0, 0, 0, 0, 2, 3, 3, 3, 3],
1274
+ color9B_1_0: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1275
+ color9i_1_0: [2, 2, 2, 2, 2, 0, 0, 0, 0],
1276
+ color11_1_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1277
+ color11L_1_0: [3, 3, 3, 3, 0, 1, 0, 2, 0, 1, 0],
1278
+ color11W_1_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1279
+ color11i_1_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1280
+ color12_1_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1281
+ color14_1_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1282
+ color15A_1_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1283
+ color15B_1_0: [3, 3, 3, 3, 4, 4, 4, 4, 0, 1, 0, 2, 0, 1, 0],
1284
+ color17_1_0: [0, 0, 0, 0, 2, 4, 4, 4, 4, 1, 1, 1, 1, 3, 3, 3, 3],
1285
+
1286
+ color5_2_0: [0, 0, 2, 0, 0],
1287
+ color7_2_0: [2, 2, 2, 0, 0, 0, 0],
1288
+ color8_2_0: [2, 0, 1, 0, 1, 0, 1, 0],
1289
+ color9A_2_0: [3, 0, 3, 0, 2, 0, 3, 0, 3],
1290
+ color9B_2_0: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1291
+ color11_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1292
+ color11L_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1293
+ color11W_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1294
+ color12_2_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1295
+ color14_2_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1296
+
1297
+ color7_3_0: [2, 0, 1, 0, 1, 0, 1, 0],
1298
+ color8_3_0: [2, 0, 1, 0, 1, 0, 1, 0],
1299
+ color9A_3_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1300
+ color11_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1301
+ color11L_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1302
+ color11W_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1303
+ color12_3_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1304
+ color14_3_0: [4, 3, 3, 3, 3, 4, 2, 0, 1, 0, 1, 0, 1, 0],
1305
+
1306
+ color7_4_0: [2, 0, 1, 0, 1, 0, 1, 0],
1307
+ color8_4_0: [2, 0, 1, 0, 1, 0, 1, 0],
1308
+ color9A_4_0: [0, 0, 2, 0, 0, 2, 3, 3, 2, 3, 3],
1309
+ color11_4_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1310
+ color11L_4_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1311
+ color11W_4_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1312
+
1313
+ color7_5_0: [2, 0, 1, 0, 1, 0, 1, 0],
1314
+ color8_5_0: [2, 0, 1, 0, 1, 0, 1, 0],
1315
+ color11_5_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1316
+ color11L_5_0: [3, 3, 3, 3, 2, 0, 1, 0, 1, 0, 1, 0],
1317
+
1318
+ color7_6_0: [2, 0, 1, 0, 1, 0, 1, 0],
1319
+
1320
+ // カラーパターン(パターン2)
1321
+ color9B_0_1: [4, 3, 1, 0, 2, 0, 1, 3, 4],
1322
+ color9A_2_1: [4, 1, 3, 0, 2, 0, 3, 1, 4],
1323
+ color17_0_1: [1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 0, 1, 0, 1],
1324
+
1325
+ color17_1_1: [1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1326
+
1327
+ // シャッフルグループ(パターン1)
1069
1328
  // - Mirror, Random, S-Random使用時、同じグループ同士で入れ替えます
1070
1329
  // - 同じ数字が同じグループになります
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],
1330
+ shuffle5_0_0: [0, 0, 0, 0, 1],
1331
+ shuffle7_0_0: [0, 0, 0, 1, 0, 0, 0],
1332
+ shuffle7i_0_0: [0, 0, 0, 1, 1, 1, 1],
1333
+ shuffle8_0_0: [0, 0, 0, 1, 0, 0, 0, 2],
1334
+ shuffle9A_0_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1335
+ shuffle9B_0_0: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1336
+ shuffle9i_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 1],
1337
+ shuffle11_0_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1338
+ shuffle11L_0_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1339
+ shuffle11W_0_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1340
+ shuffle11i_0_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1341
+ shuffle12_0_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1342
+ shuffle13_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, 3],
1343
+ shuffle14_0_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1344
+ shuffle14i_0_0: [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1345
+ shuffle15A_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1346
+ shuffle15B_0_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1347
+ shuffle16i_0_0: [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 2, 2, 2, 2],
1348
+ shuffle17_0_0: [0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2],
1349
+ 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],
1350
+
1351
+ shuffle5_1_0: [1, 0, 0, 0, 0],
1352
+ shuffle7_1_0: [0, 0, 0, 1, 0, 0, 0],
1353
+ shuffle8_1_0: [2, 0, 0, 0, 1, 0, 0, 0],
1354
+ shuffle9A_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1355
+ shuffle9B_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1356
+ shuffle9i_1_0: [0, 0, 0, 0, 0, 1, 1, 1, 1],
1357
+ shuffle11_1_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1358
+ shuffle11L_1_0: [0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1],
1359
+ shuffle11W_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1360
+ shuffle11i_1_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1361
+ shuffle12_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1362
+ shuffle14_1_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1363
+ shuffle15A_1_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1364
+ shuffle15B_1_0: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 2, 2, 2],
1365
+ shuffle17_1_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2],
1366
+
1367
+ shuffle5_2_0: [0, 0, 1, 0, 0],
1368
+ shuffle7_2_0: [0, 0, 0, 1, 1, 1, 1],
1369
+ shuffle8_2_0: [1, 0, 0, 0, 0, 0, 0, 0],
1370
+ shuffle9A_2_0: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1371
+ shuffle9B_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2],
1372
+ shuffle11_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1373
+ shuffle11L_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1374
+ shuffle11W_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1375
+ shuffle12_2_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1376
+ shuffle14_2_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1377
+
1378
+ shuffle7_3_0: [1, 0, 0, 0, 0, 0, 0, 0],
1379
+ shuffle8_3_0: [1, 0, 0, 0, 0, 0, 0, 0],
1380
+ shuffle9A_3_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1381
+ shuffle11_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1382
+ shuffle11L_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1383
+ shuffle11W_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1384
+ shuffle12_3_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1385
+ shuffle14_3_0: [3, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 2, 2, 2],
1386
+
1387
+ shuffle7_4_0: [1, 0, 0, 0, 0, 0, 0, 0],
1388
+ shuffle8_4_0: [1, 0, 0, 0, 0, 0, 0, 0],
1389
+ shuffle9A_4_0: [0, 0, 1, 0, 0, 2, 3, 3, 4, 3, 3],
1390
+ shuffle11_4_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1391
+ shuffle11L_4_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1392
+ shuffle11W_4_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1393
+
1394
+ shuffle7_5_0: [1, 0, 0, 0, 0, 0, 0, 0],
1395
+ shuffle8_5_0: [1, 0, 0, 0, 0, 0, 0, 0],
1396
+ shuffle11_5_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1397
+ shuffle11L_5_0: [0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2],
1398
+
1399
+ shuffle7_6_0: [1, 0, 0, 0, 0, 0, 0, 0],
1400
+
1401
+ // シャッフルグループ(パターン2)
1402
+ shuffle9A_0_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1403
+ shuffle11_0_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1404
+ shuffle11L_0_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1405
+ shuffle11i_0_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1406
+ shuffle15A_0_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1407
+ shuffle15B_0_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1408
+ shuffle17_0_1: [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1409
+
1410
+ shuffle9A_1_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1411
+ shuffle9B_1_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1412
+ shuffle11_1_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1413
+ shuffle11L_1_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1414
+ shuffle11i_1_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1415
+ shuffle15A_1_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1416
+ shuffle15B_1_1: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4],
1417
+ shuffle17_1_1: [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1418
+
1419
+ shuffle9B_2_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1420
+
1421
+ shuffle9A_3_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1422
+
1423
+ shuffle9A_4_1: [0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0],
1424
+
1425
+ // シャッフルグループ(パターン3)
1426
+ shuffle15A_0_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1427
+ shuffle15B_0_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1428
+
1429
+ shuffle15A_1_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1430
+ shuffle15B_1_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1121
1431
 
1122
1432
  // 基本パターン (矢印回転、AAキャラクタ)
1123
1433
  // - AAキャラクタの場合、キャラクタ名を指定
@@ -1155,6 +1465,7 @@ const g_keyObj = {
1155
1465
  stepRtn11_1: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1156
1466
  stepRtn11L_1: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1157
1467
  stepRtn11W_1: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1468
+ stepRtn11i_1: [0, -135, `giko`, 45, 180, `onigiri`, 0, -135, `iyo`, 45, 180],
1158
1469
  stepRtn12_1: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1159
1470
  stepRtn14_1: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1160
1471
  stepRtn15A_1: [0, -90, 90, 180, 0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
@@ -1163,19 +1474,38 @@ const g_keyObj = {
1163
1474
  -22.5, -67.5, -112.5, -157.5, 22.5, 67.5, 112.5, 157.5],
1164
1475
 
1165
1476
  stepRtn5_2: [0, -90, `onigiri`, 90, 180],
1166
- stepRtn7_2: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1477
+ stepRtn7_2: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180],
1167
1478
  stepRtn8_2: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1168
1479
  stepRtn9A_2: [45, 0, -45, -90, `onigiri`, 90, 135, 180, 225],
1169
1480
  stepRtn9B_2: [0, -90, 90, 180, `onigiri`, 0, -90, 90, 180],
1170
1481
  stepRtn11_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1171
1482
  stepRtn11L_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1172
1483
  stepRtn11W_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1484
+ stepRtn12_2: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1485
+ stepRtn14_2: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1173
1486
 
1174
1487
  stepRtn7_3: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1175
1488
  stepRtn8_3: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1176
1489
  stepRtn9A_3: [0, -90, `giko`, 90, 180, `onigiri`, 0, -90, `iyo`, 90, 180],
1177
1490
  stepRtn11_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1178
1491
  stepRtn11L_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1492
+ stepRtn11W_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1493
+ stepRtn12_3: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1494
+ stepRtn14_3: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1495
+
1496
+ stepRtn7_4: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1497
+ stepRtn8_4: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1498
+ stepRtn9A_4: [0, -135, `giko`, 45, 180, `onigiri`, 0, -135, `iyo`, 45, 180],
1499
+ stepRtn11_4: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1500
+ stepRtn11L_4: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1501
+ stepRtn11W_4: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1502
+
1503
+ stepRtn7_5: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1504
+ stepRtn8_5: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1505
+ stepRtn11_5: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1506
+ stepRtn11L_5: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1507
+
1508
+ stepRtn7_6: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1179
1509
 
1180
1510
  // 各キーの区切り位置
1181
1511
  div5_0: 5,
@@ -1208,6 +1538,7 @@ const g_keyObj = {
1208
1538
  div11_1: 6,
1209
1539
  div11L_1: 6,
1210
1540
  div11W_1: 5,
1541
+ div11i_1: 11,
1211
1542
  div12_1: 5,
1212
1543
  div14_1: 7,
1213
1544
  div15A_1: 8,
@@ -1215,19 +1546,38 @@ const g_keyObj = {
1215
1546
  div17_1: 9,
1216
1547
 
1217
1548
  div5_2: 5,
1218
- div7_2: 8,
1549
+ div7_2: 7,
1219
1550
  div8_2: 8,
1220
1551
  div9A_2: 9,
1221
1552
  div9B_2: 9,
1222
1553
  div11_2: 5,
1223
1554
  div11L_2: 5,
1224
1555
  div11W_2: 5,
1556
+ div12_2: 5,
1557
+ div14_2: 7,
1225
1558
 
1226
1559
  div7_3: 8,
1227
1560
  div8_3: 8,
1228
1561
  div9A_3: 11,
1229
1562
  div11_3: 5,
1230
1563
  div11L_3: 5,
1564
+ div11W_3: 5,
1565
+ div12_3: 5,
1566
+ div14_3: 7,
1567
+
1568
+ div7_4: 8,
1569
+ div8_4: 8,
1570
+ div9A_4: 11,
1571
+ div11_4: 5,
1572
+ div11L_4: 5,
1573
+ div11W_4: 5,
1574
+
1575
+ div7_5: 8,
1576
+ div8_5: 8,
1577
+ div11_5: 5,
1578
+ div11L_5: 5,
1579
+
1580
+ div7_6: 8,
1231
1581
 
1232
1582
  // 各キーの位置関係
1233
1583
  pos5_0: [0, 1, 2, 3, 4],
@@ -1260,6 +1610,7 @@ const g_keyObj = {
1260
1610
  pos11_1: [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 12],
1261
1611
  pos11L_1: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1262
1612
  pos11W_1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1613
+ pos11i_1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
1263
1614
  pos12_1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1264
1615
  pos14_1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
1265
1616
  pos15A_1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
@@ -1267,22 +1618,40 @@ const g_keyObj = {
1267
1618
  pos17_1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
1268
1619
 
1269
1620
  pos5_2: [0, 1, 2, 3, 4],
1270
- pos7_2: [0, 1, 2, 3, 4, 5, 6, 7],
1621
+ pos7_2: [0, 1, 2, 3, 4, 5, 6],
1271
1622
  pos8_2: [0, 1, 2, 3, 4, 5, 6, 7],
1272
1623
  pos9A_2: [0, 1, 2, 3, 4, 5, 6, 7, 8],
1273
1624
  pos9B_2: [0, 1, 2, 3, 4, 5, 6, 7, 8],
1274
1625
  pos11_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1275
1626
  pos11L_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1276
1627
  pos11W_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1628
+ pos12_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1629
+ pos14_2: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
1277
1630
 
1278
1631
  pos7_3: [0, 1, 2, 3, 4, 5, 6, 7],
1279
1632
  pos8_3: [0, 1, 2, 3, 4, 5, 6, 7],
1280
1633
  pos9A_3: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
1281
1634
  pos11_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1282
1635
  pos11L_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1636
+ pos11W_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1637
+ pos12_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1638
+ pos14_3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
1639
+
1640
+ pos7_4: [0, 1, 2, 3, 4, 5, 6, 7],
1641
+ pos8_4: [0, 1, 2, 3, 4, 5, 6, 7],
1642
+ pos9A_4: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
1643
+ pos11_4: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1644
+ pos11L_4: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1645
+ pos11W_4: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1646
+
1647
+ pos7_5: [0, 1, 2, 3, 4, 5, 6, 7],
1648
+ pos8_5: [0, 1, 2, 3, 4, 5, 6, 7],
1649
+ pos11_5: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1650
+ pos11L_5: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
1651
+
1652
+ pos7_6: [0, 1, 2, 3, 4, 5, 6, 7],
1283
1653
 
1284
1654
  // 基本パターン (キーコンフィグ)
1285
- // - 末尾dなし(実際の設定値)と末尾dあり(デフォルト値)は必ずセットで揃えること。配列数も合わせる。
1286
1655
  // - 順番はchara, stepRtnと対応している。
1287
1656
  // - 多次元配列内はステップに対応するキーコードを示す。カンマ区切りで複数指定できる。
1288
1657
  keyCtrl5_0: [[37, 0], [40, 0], [38, 0], [39, 0], [32, 0]],
@@ -1299,40 +1668,16 @@ const g_keyObj = {
1299
1668
  keyCtrl12_0: [[85, 0], [73, 0], [56, 57], [79, 0], [32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1300
1669
  keyCtrl13_0: [[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]],
1301
1670
  keyCtrl14_0: [[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]],
1302
- keyCtrl14i_0: [[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]],
1671
+ keyCtrl14i_0: [[90, 87], [88, 69], [67, 82], [37, 0], [40, 0], [38, 0], [39, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
1303
1672
  keyCtrl15A_0: [[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]],
1304
1673
  keyCtrl15B_0: [[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]],
1305
- keyCtrl16i_0: [[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]],
1674
+ keyCtrl16i_0: [[90, 87], [88, 69], [67, 82], [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]],
1306
1675
  keyCtrl17_0: [[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]],
1307
1676
  keyCtrl23_0: [[87, 0], [69, 0], [51, 52], [82, 0], [85, 0], [73, 0], [56, 57], [79, 0],
1308
1677
  [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
1678
 
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
1679
  // 変則パターン (キーコンフィグ)
1333
- // - 末尾dなし(実際の設定値)と末尾dあり(デフォルト値)は必ずセットで揃えること。配列数も合わせる。
1334
- // - _0, _0dの数字部分をカウントアップすることで実現できる。
1335
- // - 配列数は合わせる必要はあるが、代替キーの数は _X, _Xdで揃っていれば合わせる必要はない。
1680
+ // - _0 の数字部分をカウントアップすることで実現できる。
1336
1681
  keyCtrl5_1: [[32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1337
1682
  keyCtrl7_1: [[83, 0], [69, 0], [70, 0], [32, 71, 72], [74, 0], [73, 0], [76, 0]],
1338
1683
  keyCtrl8_1: [[13, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0]],
@@ -1342,61 +1687,52 @@ const g_keyObj = {
1342
1687
  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
1688
  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
1689
  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]],
1690
+ 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
1691
  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
1692
  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
1693
  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
1694
  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
1695
  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
1696
 
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
1697
  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]],
1698
+ keyCtrl7_2: [[90, 0], [88, 0], [67, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1368
1699
  keyCtrl8_2: [[32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1369
1700
  keyCtrl9A_2: [[65, 0], [83, 0], [68, 0], [70, 0], [32, 0], [74, 0], [75, 0], [76, 0], [187, 0]],
1370
1701
  keyCtrl9B_2: [[83, 0], [68, 0], [69, 82], [70, 0], [32, 0], [37, 0], [40, 0], [38, 0], [39, 0]],
1371
1702
  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
1703
  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
1704
  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]],
1705
+ 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]],
1706
+ 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
1707
 
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]],
1708
+ keyCtrl7_3: [[32, 0], [78, 0], [74, 0], [77, 0], [75, 0], [188, 0], [76, 0], [190, 0]],
1385
1709
  keyCtrl8_3: [[32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1386
1710
  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
1711
  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
1712
  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]],
1713
+ 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]],
1714
+ 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]],
1715
+ 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
1716
 
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]],
1717
+ keyCtrl7_4: [[32, 0], [66, 0], [72, 0], [78, 77], [74, 75], [188, 0], [76, 0], [190, 0]],
1718
+ keyCtrl8_4: [[16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1719
+ keyCtrl9A_4: [[83, 0], [88, 67], [68, 0], [69, 82], [70, 0], [32, 0], [74, 0], [77, 188], [75, 0], [73, 79], [76, 0]],
1720
+ 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]],
1721
+ 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]],
1722
+ 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]],
1723
+
1724
+ keyCtrl7_5: [[16, 0], [90, 0], [83, 0], [88, 0], [68, 0], [67, 0], [70, 0], [86, 0]],
1725
+ keyCtrl8_5: [[16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1726
+ 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]],
1727
+ 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]],
1728
+
1729
+ keyCtrl7_6: [[16, 0], [90, 0], [83, 0], [88, 67], [68, 70], [86, 0], [71, 0], [66, 0]],
1395
1730
 
1396
1731
  // 矢印間隔補正
1397
1732
  blank: 55,
1398
1733
  blank_def: 55,
1399
1734
  blank11i_0: 50,
1735
+ blank11i_1: 50,
1400
1736
  blank17_0: 45,
1401
1737
  blank5_0: 57.5,
1402
1738
  blank5_1: 57.5,
@@ -1405,6 +1741,7 @@ const g_keyObj = {
1405
1741
  blank9A_1: 52.5,
1406
1742
  blank9A_2: 52.5,
1407
1743
  blank9A_3: 50,
1744
+ blank9A_4: 50,
1408
1745
  blank9B_0: 52.5,
1409
1746
  blank9B_1: 52.5,
1410
1747
  blank9B_2: 52.5,
@@ -1430,7 +1767,7 @@ const g_keyObj = {
1430
1767
 
1431
1768
  transKey9A_2: '9B',
1432
1769
  transKey9B_2: '9A',
1433
- transKey7_2: '12',
1770
+ transKey7_2: '7i',
1434
1771
  transKey8_2: '12',
1435
1772
  transKey11_2: '12',
1436
1773
  transKey11L_2: '12',
@@ -1441,6 +1778,21 @@ const g_keyObj = {
1441
1778
  transKey9A_3: '11i',
1442
1779
  transKey11_3: '12',
1443
1780
  transKey11L_3: '12',
1781
+ transKey11W_3: '12',
1782
+
1783
+ transKey7_4: '12',
1784
+ transKey8_4: '12',
1785
+ transKey9A_4: '11i',
1786
+ transKey11_4: '12',
1787
+ transKey11L_4: '12',
1788
+ transKey11W_4: '12',
1789
+
1790
+ transKey7_5: '12',
1791
+ transKey8_5: '12',
1792
+ transKey11_5: '12',
1793
+ transKey11L_5: '12',
1794
+
1795
+ transKey7_6: '12',
1444
1796
 
1445
1797
  // キー置換用(ParaFla版との互換)
1446
1798
  keyTransPattern: {
@@ -1457,25 +1809,6 @@ const g_keyObj = {
1457
1809
 
1458
1810
  // スクロール拡張オプション
1459
1811
  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
1812
  scrollDir5_0: {
1480
1813
  '---': [1, 1, 1, 1, 1],
1481
1814
  'Cross': [1, -1, -1, 1, 1],
@@ -1511,6 +1844,14 @@ const g_keyObj = {
1511
1844
  'Asymmetry': [1, -1, 1, -1, -1, 1, -1],
1512
1845
  },
1513
1846
  scrollDir7_2: {
1847
+ '---': [1, 1, 1, 1, 1, 1, 1],
1848
+ 'Cross': [1, 1, -1, -1, -1, 1, 1],
1849
+ 'Split': [1, 1, 1, -1, -1, -1, -1],
1850
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1],
1851
+ 'Twist': [1, 1, -1, -1, 1, 1, -1],
1852
+ 'Asymmetry': [1, -1, 1, 1, -1, 1, -1],
1853
+ },
1854
+ scrollDir7_3: {
1514
1855
  '---': [1, 1, 1, 1, 1, 1, 1, 1],
1515
1856
  'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1516
1857
  'Split': [1, 1, 1, 1, 1, -1, -1, -1],
@@ -1518,7 +1859,23 @@ const g_keyObj = {
1518
1859
  'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1519
1860
  'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1520
1861
  },
1521
- scrollDir7_3: {
1862
+ scrollDir7_4: {
1863
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1864
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1865
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1866
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1867
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1868
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1869
+ },
1870
+ scrollDir7_5: {
1871
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1872
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1873
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1874
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1875
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1876
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1877
+ },
1878
+ scrollDir7_6: {
1522
1879
  '---': [1, 1, 1, 1, 1, 1, 1, 1],
1523
1880
  'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1524
1881
  'Split': [1, 1, 1, 1, 1, -1, -1, -1],
@@ -1567,29 +1924,61 @@ const g_keyObj = {
1567
1924
  'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1568
1925
  'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1569
1926
  },
1927
+ scrollDir8_4: {
1928
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1929
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1930
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1931
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1932
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1933
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1934
+ },
1935
+ scrollDir8_5: {
1936
+ '---': [1, 1, 1, 1, 1, 1, 1, 1],
1937
+ 'Cross': [1, 1, 1, -1, -1, -1, 1, 1],
1938
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1],
1939
+ 'Alternate': [-1, 1, -1, 1, -1, 1, -1, 1],
1940
+ 'Twist': [1, 1, -1, -1, 1, 1, -1, -1],
1941
+ 'Asymmetry': [1, 1, -1, 1, -1, -1, 1, -1],
1942
+ },
1570
1943
  scrollDir9A_0: {
1571
1944
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1572
1945
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1573
1946
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1574
1947
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1948
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1949
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1575
1950
  },
1576
1951
  scrollDir9A_1: {
1577
1952
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1578
1953
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1579
1954
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1580
1955
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1956
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1957
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1581
1958
  },
1582
1959
  scrollDir9A_2: {
1583
1960
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1584
1961
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1585
1962
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1586
1963
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1964
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1965
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1587
1966
  },
1588
1967
  scrollDir9A_3: {
1589
1968
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1590
1969
  'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
1591
1970
  'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
1592
1971
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
1972
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
1973
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
1974
+ },
1975
+ scrollDir9A_4: {
1976
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1977
+ 'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
1978
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
1979
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
1980
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
1981
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
1593
1982
  },
1594
1983
 
1595
1984
  scrollDir9B_0: {
@@ -1597,18 +1986,32 @@ const g_keyObj = {
1597
1986
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1598
1987
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1599
1988
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1989
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1990
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1600
1991
  },
1601
1992
  scrollDir9B_1: {
1602
1993
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1603
1994
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1604
1995
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1605
1996
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
1997
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
1998
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1606
1999
  },
1607
2000
  scrollDir9B_2: {
1608
2001
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
1609
2002
  'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
1610
2003
  'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
1611
2004
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
2005
+ 'Twist': [1, 1, -1, -1, -1, 1, 1, -1, -1],
2006
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
2007
+ },
2008
+ scrollDir9i_1: {
2009
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1],
2010
+ 'Cross': [1, 1, -1, -1, -1, -1, -1, 1, 1],
2011
+ 'Split': [1, 1, 1, 1, -1, -1, -1, -1, -1],
2012
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1],
2013
+ 'Twist': [1, 1, -1, -1, 1, 1, 1, -1, -1],
2014
+ 'Asymmetry': [1, -1, -1, 1, -1, -1, 1, 1, -1],
1612
2015
  },
1613
2016
 
1614
2017
  scrollDir11_0: {
@@ -1627,6 +2030,14 @@ const g_keyObj = {
1627
2030
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1628
2031
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1629
2032
  },
2033
+ scrollDir11_4: {
2034
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2035
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2036
+ },
2037
+ scrollDir11_5: {
2038
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2039
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2040
+ },
1630
2041
 
1631
2042
  scrollDir11L_0: {
1632
2043
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
@@ -1644,6 +2055,14 @@ const g_keyObj = {
1644
2055
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1645
2056
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1646
2057
  },
2058
+ scrollDir11L_4: {
2059
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2060
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2061
+ },
2062
+ scrollDir11L_5: {
2063
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2064
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2065
+ },
1647
2066
 
1648
2067
  scrollDir11W_0: {
1649
2068
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
@@ -1657,12 +2076,30 @@ const g_keyObj = {
1657
2076
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1658
2077
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1659
2078
  },
2079
+ scrollDir11W_3: {
2080
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2081
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2082
+ },
2083
+ scrollDir11W_4: {
2084
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2085
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2086
+ },
1660
2087
 
1661
2088
  scrollDir11i_0: {
1662
2089
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1663
2090
  'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
1664
2091
  'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
1665
2092
  'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
2093
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
2094
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
2095
+ },
2096
+ scrollDir11i_1: {
2097
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2098
+ 'Cross': [1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1],
2099
+ 'Split': [1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1],
2100
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
2101
+ 'Twist': [1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1],
2102
+ 'Asymmetry': [1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1],
1666
2103
  },
1667
2104
 
1668
2105
  scrollDir12_0: {
@@ -1673,9 +2110,19 @@ const g_keyObj = {
1673
2110
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1674
2111
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1675
2112
  },
2113
+ scrollDir12_2: {
2114
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2115
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2116
+ },
2117
+ scrollDir12_3: {
2118
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2119
+ 'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2120
+ },
2121
+
1676
2122
  scrollDir13_0: {
1677
2123
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1678
2124
  'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
2125
+ 'Cross': [-1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1],
1679
2126
  },
1680
2127
  scrollDir14_0: {
1681
2128
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
@@ -1685,6 +2132,15 @@ const g_keyObj = {
1685
2132
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1686
2133
  'Flat': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
1687
2134
  },
2135
+ scrollDir14_2: {
2136
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2137
+ 'Flat': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2138
+ },
2139
+ scrollDir14_3: {
2140
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2141
+ 'Flat': [1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
2142
+ },
2143
+
1688
2144
  scrollDir14i_0: {
1689
2145
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1690
2146
  'Flat': [1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1],
@@ -1709,18 +2165,18 @@ const g_keyObj = {
1709
2165
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1710
2166
  'Flat': [1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1711
2167
  },
2168
+ scrollDir17_0: {
2169
+ '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2170
+ 'Cross': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1],
2171
+ 'Split': [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
2172
+ 'Alternate': [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1],
2173
+ },
1712
2174
  scrollDir23_0: {
1713
2175
  '---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
1714
2176
  '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
2177
  },
1716
2178
 
1717
2179
  // プレイアシスト設定
1718
- assistName5: [`Onigiri`],
1719
- assistName9A: [`Left`, `Right`],
1720
- assistName11i: [`Left`, `Right`],
1721
- assistName17: [`Left`, `Right`],
1722
- assistName23: [`Left`, `Right`],
1723
-
1724
2180
  assistPos5_0: {
1725
2181
  'Onigiri': [0, 0, 0, 0, 1],
1726
2182
  },
@@ -1769,8 +2225,18 @@ const g_keyObj = {
1769
2225
  dummy: 0 // ダミー(カンマ抜け落ち防止)
1770
2226
  };
1771
2227
 
2228
+ // デフォルト配列のコピー (g_keyObj.aaa_X から g_keyObj.aaa_Xd を作成)
2229
+ const keyCtrlName = Object.keys(g_keyObj).filter(val => val.startsWith(`keyCtrl`));
2230
+ keyCtrlName.forEach(property => g_keyObj[`${property}d`] = copyArray2d(g_keyObj[property]));
2231
+
2232
+ [`color`, `shuffle`].forEach(type => {
2233
+ const tmpName = Object.keys(g_keyObj).filter(val => val.startsWith(type) && val.endsWith(`_0`));
2234
+ tmpName.forEach(property => g_keyObj[`${property.slice(0, -2)}`] = g_keyObj[property].concat());
2235
+ });
2236
+
1772
2237
  // 特殊キーのコピー種 (simple: 代入、multiple: 配列ごと代入)
1773
2238
  const g_keyCopyLists = {
2239
+ simpleDef: [`blank`, `scale`],
1774
2240
  simple: [`div`, `blank`, `scale`, `keyRetry`, `keyTitleBack`, `transKey`, `scrollDir`, `assistPos`],
1775
2241
  multiple: [`chara`, `color`, `stepRtn`, `pos`, `shuffle`],
1776
2242
  };
@@ -1793,6 +2259,22 @@ const g_titleLists = {
1793
2259
 
1794
2260
  const g_animationData = [`back`, `mask`];
1795
2261
 
2262
+ let g_fadeinStockList = [`word`, `back`, `mask`];
2263
+
2264
+ /** フェードイン時でもプリロードを除外しないリスト */
2265
+ const g_preloadExceptList = {
2266
+ word: [`[left]`, `[center]`, `[right]`],
2267
+ back: [],
2268
+ mask: [],
2269
+ };
2270
+
2271
+ /** フェードイン時、プリロードを強制削除するリスト(初期値は空) */
2272
+ const g_stockForceDelList = {
2273
+ word: [],
2274
+ back: [],
2275
+ mask: [],
2276
+ };
2277
+
1796
2278
  /**
1797
2279
  * データ種, 最小データ長のセット
1798
2280
  */
@@ -1820,6 +2302,13 @@ const g_dfColorObj = {
1820
2302
 
1821
2303
  setColorType1: [`#6666ff`, `#99ffff`, `#ffffff`, `#ffff99`, `#ff9966`],
1822
2304
  setColorType2: [`#ffffff`, `#9999ff`, `#99ccff`, `#ffccff`, `#ff9999`],
2305
+ setColorType3: [`#ccccff`, `#ccffff`, `#ffffff`, `#ffffcc`, `#ffcc99`],
2306
+ setColorType4: [`#ffffff`, `#ccccff`, `#99ccff`, `#ffccff`, `#ffcccc`],
2307
+
2308
+ setShadowColorType1: [`#00000080`, `#00000080`, `#00000080`, `#00000080`, `#00000080`],
2309
+ setShadowColorType2: [`#00000080`, `#00000080`, `#00000080`, `#00000080`, `#00000080`],
2310
+ setShadowColorType3: [`#6666ff60`, `#33999960`, `#66666660`, `#99993360`, `#cc663360`],
2311
+ setShadowColorType4: [`#66666660`, `#6666ff60`, `#3366cc60`, `#99339960`, `#99333360`],
1823
2312
 
1824
2313
  // フリーズアロー初期色情報
1825
2314
  frzColorInit: [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
@@ -1838,6 +2327,61 @@ const g_dfColorObj = {
1838
2327
  [`#cc99cc`, `#ff99ff`, `#cccc33`, `#999933`],
1839
2328
  [`#ff6666`, `#ff9999`, `#cccc33`, `#999933`]
1840
2329
  ],
2330
+ frzColorType3: [
2331
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2332
+ [`#00ffcc`, `#339999`, `#cccc33`, `#999933`],
2333
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2334
+ [`#cc99ff`, `#9966ff`, `#cccc33`, `#999933`],
2335
+ [`#ff99cc`, `#ff6699`, `#cccc33`, `#999933`]
2336
+ ],
2337
+ frzColorType4: [
2338
+ [`#cccccc`, `#999999`, `#cccc33`, `#999933`],
2339
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2340
+ [`#66ffff`, `#6600ff`, `#cccc33`, `#999933`],
2341
+ [`#cc99cc`, `#ff99ff`, `#cccc33`, `#999933`],
2342
+ [`#ff6666`, `#ff9999`, `#cccc33`, `#999933`]
2343
+ ],
2344
+ };
2345
+
2346
+ const g_dfColorLightObj = {
2347
+ setColorType1: [`#6666ff`, `#66cccc`, `#000000`, `#999966`, `#cc6600`],
2348
+ setColorType2: [`#000000`, `#6666ff`, `#cc0000`, `#cc99cc`, `#cc3366`],
2349
+ setColorType3: [`#000000`, `#000000`, `#000000`, `#000000`, `#000000`],
2350
+ setColorType4: [`#000000`, `#000000`, `#000000`, `#000000`, `#000000`],
2351
+
2352
+ setShadowColorType1: [`#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`],
2353
+ setShadowColorType2: [`#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`, `#ffffff80`],
2354
+ setShadowColorType3: [`#6666ff80`, `#66cccc80`, `#ffffff80`, `#99996680`, `#cc660080`],
2355
+ setShadowColorType4: [`#00000080`, `#6666ff80`, `#cc000080`, `#cc99cc80`, `#cc336680`],
2356
+
2357
+ frzColorType1: [
2358
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2359
+ [`#00ffcc`, `#339999`, `#ffff00`, `#999900`],
2360
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2361
+ [`#cc99ff`, `#9966ff`, `#ffff00`, `#999900`],
2362
+ [`#ff99cc`, `#ff6699`, `#ffff00`, `#999900`]
2363
+ ],
2364
+ frzColorType2: [
2365
+ [`#cccccc`, `#999999`, `#ffff00`, `#999900`],
2366
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2367
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2368
+ [`#cc99cc`, `#ff99ff`, `#ffff00`, `#999900`],
2369
+ [`#ff6666`, `#ff9999`, `#ffff00`, `#999900`]
2370
+ ],
2371
+ frzColorType3: [
2372
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2373
+ [`#00ffcc`, `#339999`, `#ffff00`, `#999900`],
2374
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2375
+ [`#cc99ff`, `#9966ff`, `#ffff00`, `#999900`],
2376
+ [`#ff99cc`, `#ff6699`, `#ffff00`, `#999900`]
2377
+ ],
2378
+ frzColorType4: [
2379
+ [`#cccccc`, `#999999`, `#ffff00`, `#999900`],
2380
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2381
+ [`#66ffff`, `#6600ff`, `#ffff00`, `#999900`],
2382
+ [`#cc99cc`, `#ff99ff`, `#ffff00`, `#999900`],
2383
+ [`#ff6666`, `#ff9999`, `#ffff00`, `#999900`]
2384
+ ],
1841
2385
  };
1842
2386
 
1843
2387
  const g_escapeStr = {
@@ -1856,11 +2400,18 @@ const g_escapeStr = {
1856
2400
  ],
1857
2401
  };
1858
2402
 
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`],
2403
+ /**
2404
+ * 文字列部分一致用リスト
2405
+ */
2406
+ const g_checkStr = {
2407
+ // グラデーションで、カラーコードではないパーセント表記、位置表記系を除外するためのリスト
2408
+ // 'at', 'to'のみ、'to left'や'to right'のように方向が入るため、半角スペースまで込みで判断
2409
+ cssHeader: [`at `, `to `, `from`, `circle`, `ellipse`, `closest-`, `farthest-`, `transparent`],
2410
+ cssFooter: [`deg`, `rad`, `grad`, `turn`, `repeat`],
2411
+
2412
+ // 譜面分割あり、譜面番号固定時のみ譜面データを一時クリアする際の条件
2413
+ resetDosHeader: [`gauge`],
2414
+ resetDosFooter: [`_data`, `_change`, `Color`, `customGauge`],
1864
2415
  };
1865
2416
 
1866
2417
  /**
@@ -1869,48 +2420,117 @@ const g_cssCheckStr = {
1869
2420
  * - 記述不正の場合、書き方を2行目に指定すると親切。
1870
2421
  */
1871
2422
  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: `各譜面の明細情報をクリップボードにコピーしました!`,
2423
+
2424
+ };
2425
+
2426
+ const g_lang_msgInfoObj = {
2427
+ Ja: {
2428
+ W_0001: `お使いのブラウザは動作保証外です。<br>
2429
+ Chrome/Opera/Vivaldiなど、WebKit系ブラウザの利用を推奨します。(W-0001)`,
2430
+ W_0011: `fileスキームでの動作のため、内蔵の画像データを使用します。<br>
2431
+ imgフォルダ以下の画像の変更は適用されません。(W-0011)`,
2432
+ W_0012: `現在の設定では音源再生方法により小数の Adjustment が利用できません。<br>
2433
+ また、Fadein を使用した場合は通常よりズレが発生することがあります。<br>
2434
+ 音源ファイルを js/txt 化するか、サーバー上動作とすれば解消します。(W-0012)`,
2435
+ W_0021: `クリップボードのコピーに失敗しました。`,
2436
+
2437
+ E_0011: `アーティスト名が未入力です。(E-0011)`,
2438
+ E_0012: `曲名情報が未設定です。(E-0012)<br>
2439
+ |musicTitle=曲名,アーティスト名,アーティストURL|`,
2440
+ E_0021: `譜面情報が未指定か、フォーマットが間違っています。(E-0021)<br>
2441
+ |difData=キー数,譜面名,初期速度|`,
2442
+ E_0022: `外部譜面ファイルのフォーマットが間違っています。(E-0022)<br>
2443
+ function externalDosInit() { g_externalDos = \`(譜面データ)\`; }`,
2444
+ E_0023: `譜面情報が未指定です。(E-0023)<br>
2445
+ 以下のいずれか、または両方を指定してください。<br>
2446
+ &lt;input type="hidden" name="externalDos" id="externalDos" value="dos.txt"&gt;<br>
2447
+ &lt;input type="hidden" name="dos" id="dos" value="(譜面データ)"&gt;<br>`,
2448
+ E_0031: `楽曲ファイルが未指定か、フォーマットが間違っています。(E-0031)<br>
2449
+ |musicUrl=****.mp3|`,
2450
+ E_0032: `楽曲ファイルの読み込みに失敗しました。(E-0032)`,
2451
+ E_0033: `楽曲ファイルの読み込み中に接続がタイムアウトしました。(E-0033)`,
2452
+ E_0034: `楽曲ファイルの読み込み中にエラーが発生しました。(E-0034)`,
2453
+ E_0035: `お使いのOSでは指定された楽曲フォーマットに対応していません。(E-0035)`,
2454
+ E_0041: `ファイル:{0}の読み込みに失敗しました。(E-0041)<br>`,
2455
+ E_0042: `{0}は0より大きい値を指定する必要があります。(E-0042)`,
2456
+ E_0051: `Displayオプションのデフォルト設定(XXXXChainOFF)で、<br>指定できない組み合わせが設定されています。(E-0051)`,
2457
+
2458
+ E_0101: `新しいキー:{0}の[color]が未定義です。(E-0101)<br>
2459
+ |color{0}=0,1,0,1,0,2|`,
2460
+ E_0102: `新しいキー:{0}の[chara]が未定義です。(E-0102)<br>
2461
+ |chara{0}=arrowA,arrowB,arrowC,arrowD,arrowE,arrowF|`,
2462
+ E_0103: `新しいキー:{0}の[stepRtn]が未定義です。(E-0103)<br>
2463
+ |stepRtn{0}=0,45,-90,135,180,onigiri|`,
2464
+ E_0104: `新しいキー:{0}の[keyCtrl]が未定義です。(E-0104)<br>
2465
+ |keyCtrl{0}=75,79,76,80,187,32/0|`,
2466
+
2467
+ I_0001: `リザルトデータをクリップボードにコピーしました!`,
2468
+ I_0002: `入力したキーは割り当てできません。他のキーを指定してください。`,
2469
+ I_0003: `各譜面の明細情報をクリップボードにコピーしました!`,
2470
+ I_0004: `musicUrlが設定されていないため、無音モードで再生します`,
2471
+ },
2472
+ En: {
2473
+ W_0001: `Your browser is not guaranteed to work.<br>
2474
+ We recommend using a WebKit browser such as Chrome, Opera and Vivaldi. (W-0001)`,
2475
+ W_0011: `Uses built-in image data for operation with the file scheme.<br>
2476
+ Changes to the images under the "img" folder will not be applied. (W-0011)`,
2477
+ W_0012: `With the current settings, a decimal of "Adjustment" cannot be used
2478
+ depending on the sound source playback method.<br>
2479
+ Also, if you use "Fadein", it may be out of alignment.<br>
2480
+ It can be solved by converting the sound source file to encoded data (js, txt) or
2481
+ operating it on the server. (W-0012)`,
2482
+ W_0021: `Failed to copy the clipboard.`,
2483
+
2484
+ E_0011: `The artist name is not set. (E-0011)`,
2485
+ E_0012: `The song title information is not set. (E-0012)<br>
2486
+ |musicTitle=Song title,Artist name,Artist's site URL|`,
2487
+ E_0021: `Music information is not set or the format is incorrect.(E-0021)<br>
2488
+ |difData=Keys' name,chart's name,Specified speed|`,
2489
+ E_0022: `The format of the external music file is incorrect.(E-0022)<br>
2490
+ function externalDosInit() { g_externalDos = \`(Chart data)\`; }`,
2491
+ E_0023: `Music information is not set. (E-0023)<br>
2492
+ Specify either or both of the following:<br>
2493
+ &lt;input type="hidden" name="externalDos" id="externalDos" value="dos.txt"&gt;<br>
2494
+ &lt;input type="hidden" name="dos" id="dos" value="(Chart data)"&gt;<br>`,
2495
+ E_0031: `The music file is not set or the format is incorrect.(E-0031)<br>
2496
+ |musicUrl=****.mp3|`,
2497
+ E_0032: `Failed to read the music file. (E-0032)`,
2498
+ E_0033: `The connection timed out while loading a music file. (E-0033)`,
2499
+ E_0034: `An error occurred while reading the music file. (E-0034)`,
2500
+ E_0035: `Your OS does not support the specified music format. (E-0035)`,
2501
+ E_0041: `Failed to read file: {0}. (E-0041)<br>`,
2502
+ E_0042: `{0} must be greater than 0. (E-0042)`,
2503
+ E_0051: `In the default setting (XXXXChainOFF) of the Display option, <br>a combination that cannot be specified is set. (E-0051)`,
2504
+
2505
+ E_0101: `New key: {0} [color] is not set. (E-0101)<br>
2506
+ |color{0}=0,1,0,1,0,2|`,
2507
+ E_0102: `New key: {0} [chara] is not set. (E-0102)<br>
2508
+ |chara{0}=arrowA,arrowB,arrowC,arrowD,arrowE,arrowF|`,
2509
+ E_0103: `New key: {0} [stepRtn] is not set. (E-0103)<br>
2510
+ |stepRtn{0}=0,45,-90,135,180,onigiri|`,
2511
+ E_0104: `New key: {0} [keyCtrl] is not set. (E-0104)<br>
2512
+ |keyCtrl{0}=75,79,76,80,187,32/0|`,
2513
+
2514
+ I_0001: `Your result data is copied to the clipboard!`,
2515
+ I_0002: `The specified key cannot be assigned. Please specify another key.`,
2516
+ I_0003: `Charts information is copied to the clipboard!`,
2517
+ I_0004: `Play in silence mode because "musicUrl" is not set`,
2518
+ },
2519
+ }
2520
+
2521
+ /**
2522
+ * ショートカット表示のデフォルト値設定
2523
+ */
2524
+ const g_scViewObj = {
2525
+ x: 95,
2526
+ y: 0,
2527
+ w: 40,
2528
+ siz: 12,
2529
+ format: `{0})`,
1910
2530
  };
1911
2531
 
1912
2532
  /**
1913
- * ラベル表示定義
2533
+ * ラベル表示定義(共通部)
1914
2534
  */
1915
2535
  const g_lblNameObj = {
1916
2536
  dancing: `DANCING`,
@@ -1922,12 +2542,6 @@ const g_lblNameObj = {
1922
2542
  config: `CONFIG`,
1923
2543
  result: `RESULT`,
1924
2544
 
1925
- kcDesc: `[{0}:スキップ / {1}:(代替キーのみ)キー無効化]`,
1926
- sdDesc: `[クリックでON/OFFを切替、灰色でOFF]`,
1927
- kcShortcutDesc: `プレイ中ショートカット:「{0}」タイトルバック / 「{1}」リトライ`,
1928
- transKeyDesc: `別キーモードではハイスコア、キーコンフィグ等は保存されません`,
1929
- sdShortcutDesc: `Hid+/Sud+時ショートカット:「pageUp」カバーを上へ / 「pageDown」下へ`,
1930
-
1931
2545
  maker: `Maker`,
1932
2546
  artist: `Artist`,
1933
2547
 
@@ -1961,9 +2575,15 @@ const g_lblNameObj = {
1961
2575
  Fadein: `Fadein`,
1962
2576
  Volume: `Volume`,
1963
2577
 
2578
+ multi: `x`,
2579
+ frame: `f`,
2580
+ percent: `%`,
2581
+ filterLock: `Lock`,
2582
+
1964
2583
  sc_speed: `←→`,
1965
2584
  sc_scroll: `R/↑↓`,
1966
2585
  sc_adjustment: `- +`,
2586
+ sc_keyConfigPlay: g_isMac ? `Del+Enter` : `BS+Enter`,
1967
2587
 
1968
2588
  g_start: `Start`,
1969
2589
  g_border: `Border`,
@@ -1977,15 +2597,6 @@ const g_lblNameObj = {
1977
2597
  s_arrow: `Arrow`,
1978
2598
  s_frz: `Frz`,
1979
2599
 
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
2600
  d_StepZone: `StepZone`,
1990
2601
  d_Judgment: `Judgment`,
1991
2602
  d_FastSlow: `FastSlow`,
@@ -2003,19 +2614,77 @@ const g_lblNameObj = {
2003
2614
  Appearance: `Appearance`,
2004
2615
  Opacity: `Opacity`,
2005
2616
 
2617
+ 'u_x': `x`,
2618
+ 'u_%': `%`,
2619
+ 'u_key': `key`,
2620
+ 'u_k-': `k-`,
2621
+
2622
+ 'u_OFF': `OFF`,
2623
+ 'u_ON': `ON`,
2624
+ 'u_Boost': `Boost`,
2625
+ 'u_Brake': `Brake`,
2626
+
2627
+ 'u_Cross': `Cross`,
2628
+ 'u_Split': `Split`,
2629
+ 'u_Alternate': `Alternate`,
2630
+ 'u_Twist': `Twist`,
2631
+ 'u_Asymmetry': `Asymmetry`,
2632
+ 'u_Flat': `Flat`,
2633
+ 'u_R-': `R-`,
2634
+ 'u_Reverse': `Reverse`,
2635
+
2636
+ 'u_Mirror': `Mirror`,
2637
+ 'u_Asym-Mirror': `Asym-Mirror`,
2638
+ 'u_Random': `Random`,
2639
+ 'u_Random+': `Random+`,
2640
+ 'u_S-Random': `S-Random`,
2641
+ 'u_S-Random+': `S-Random+`,
2642
+
2643
+ 'u_ALL': `ALL`,
2644
+ 'u_Onigiri': `Onigiri`,
2645
+ 'u_Left': `Left`,
2646
+ 'u_Right': `Right`,
2647
+ 'u_less': `less`,
2648
+
2649
+ 'u_Original': `Original`,
2650
+ 'u_Heavy': `Heavy`,
2651
+ 'u_NoRecovery': `NoRecovery`,
2652
+ 'u_SuddenDeath': `SuddenDeath`,
2653
+ 'u_Practice': `Practice`,
2654
+ 'u_Light': `Light`,
2655
+
2656
+ 'u_Normal': `Normal`,
2657
+ 'u_Hard': `Hard`,
2658
+ 'u_Easy': `Easy`,
2659
+
2660
+ 'u_Visible': `Visible`,
2661
+ 'u_Hidden': `Hidden`,
2662
+ 'u_Hidden+': `Hidden+`,
2663
+ 'u_Sudden': `Sudden`,
2664
+ 'u_Sudden+': `Sudden+`,
2665
+ 'u_Hid&Sud+': `Hid&Sud+`,
2666
+
2667
+ 'u_Speed': `Speed`,
2668
+ 'u_Density': `Density`,
2669
+ 'u_ToolDif': `ToolDif`,
2670
+
2671
+ 'u_Main': `Main`,
2672
+ 'u_Replaced': `Replaced`,
2673
+
2674
+ 'u_Default': `Default`,
2675
+ 'u_Type0': `Type0`,
2676
+ 'u_Type1': `Type1`,
2677
+ 'u_Type2': `Type2`,
2678
+ 'u_Type3': `Type3`,
2679
+ 'u_Type4': `Type4`,
2680
+
2006
2681
  ConfigType: `ConfigType`,
2007
2682
  ColorType: `ColorType`,
2683
+ ImgType: `ImgType`,
2684
+ ColorGroup: `ColorGr.`,
2685
+ ShuffleGroup: `ShuffleGr.`,
2008
2686
  KeyPattern: `KeyPattern`,
2009
2687
 
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
2688
  j_maxCombo: `MaxCombo`,
2020
2689
  j_fmaxCombo: `FreezeCombo`,
2021
2690
  j_score: `Score`,
@@ -2028,65 +2697,457 @@ const g_lblNameObj = {
2028
2697
  fullCombo: `FullCombo!`,
2029
2698
  cleared: `CLEARED!`,
2030
2699
  failed: `FAILED...`,
2031
- };
2032
2700
 
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;
2701
+ rt_Music: `Music`,
2702
+ rt_Difficulty: `Difficulty`,
2703
+ rt_Style: `Playstyle`,
2704
+ rt_Display: `Display`,
2705
+
2706
+ rd_StepZone: `Step`,
2707
+ rd_Judgment: `Judge`,
2708
+ rd_FastSlow: `FS`,
2709
+ rd_LifeGauge: `Life`,
2710
+ rd_Score: `Score`,
2711
+ rd_MusicInfo: `MusicInfo`,
2712
+ rd_FilterLine: `Filter`,
2713
+ rd_Speed: `Speed`,
2714
+ rd_Color: `Color`,
2715
+ rd_Lyrics: `Lyrics`,
2716
+ rd_Background: `Back`,
2717
+ rd_ArrowEffect: `Effect`,
2718
+ rd_Special: `SP`,
2719
+ };
2039
2720
 
2040
- let C_JCR_KITA = g_lblNameObj.j_kita;
2041
- let C_JCR_SFSF = "";
2042
- let C_JCR_IKNAI = g_lblNameObj.j_iknai;
2721
+ /**
2722
+ * ラベル表示定義(言語別)
2723
+ */
2724
+ const g_lang_lblNameObj = {
2725
+ Ja: {
2726
+ kcDesc: `[{0}:スキップ / {1}:(代替キーのみ)キー無効化]`,
2727
+ kcShuffleDesc: `番号をクリックでシャッフルグループ、矢印をクリックでカラーグループを一時的に変更`,
2728
+ sdDesc: `[クリックでON/OFFを切替、灰色でOFF]`,
2729
+ kcShortcutDesc: `プレイ中ショートカット:「{0}」タイトルバック / 「{1}」リトライ`,
2730
+ transKeyDesc: `別キーモードではハイスコア、キーコンフィグ等は保存されません`,
2731
+ sdShortcutDesc: `Hid+/Sud+時ショートカット:「pageUp」カバーを上へ / 「pageDown」下へ`,
2732
+
2733
+ s_level: `Level`,
2734
+ s_douji: `同時補正`,
2735
+ s_tate: `縦連補正`,
2736
+ s_cnts: `All Arrows`,
2737
+ s_linecnts: `- 矢印 Arrow:<br><br>- 氷矢 Frz:<br><br>- 3つ押し位置 ({0}):`,
2738
+ s_print: `データ出力`,
2739
+ s_printTitle: `Dancing☆Onigiri レベル計算ツール+++`,
2740
+ s_printHeader: `難易度\t同時\t縦連\t総数\t矢印\t氷矢印\tAPM\t時間`,
2741
+
2742
+ j_ii: "(・∀・)イイ!!",
2743
+ j_shakin: "(`・ω・)シャキン",
2744
+ j_matari: "( ´∀`)マターリ",
2745
+ j_shobon: "(´・ω・`)ショボーン",
2746
+ j_uwan: "( `Д´)ウワァン!!",
2747
+
2748
+ j_kita: "(゚∀゚)キタ-!!",
2749
+ j_iknai: "(・A・)イクナイ",
2750
+
2751
+ j_adj: `推定Adj`,
2752
+ },
2753
+ En: {
2754
+ kcDesc: `[{0}:Skip / {1}:Key invalidation (Alternate keys only)]`,
2755
+ kcShuffleDesc: `Click the number to change the shuffle group, and click the arrow to change the color.`,
2756
+ sdDesc: `[Click to switch, gray to OFF]`,
2757
+ kcShortcutDesc: `Shortcut during play: "{0}" Return to title / "{1}" Retry the game`,
2758
+ transKeyDesc: `High score, key config, etc. are not saved in another key mode`,
2759
+ sdShortcutDesc: `When "Hidden+" or "Sudden+" select, "pageUp" cover up / "pageDown" cover down`,
2760
+
2761
+ s_level: `Level`,
2762
+ s_douji: `N-push`,
2763
+ s_tate: `Jack Corr.`,
2764
+ s_cnts: `All Arrows`,
2765
+ s_linecnts: `- Arrow:<br><br>- Freeze Arrow:<br><br>- 3 push positions ({0}):`,
2766
+ s_print: `CopyData`,
2767
+ s_printTitle: `Dancing☆Onigiri Level Calculator+++`,
2768
+ s_printHeader: `Level\tN-Push\tJack\tAll\tArrow\tFrz\tAPM\tTime`,
2769
+
2770
+ j_ii: ":D Perfect!!",
2771
+ j_shakin: ":) Great!",
2772
+ j_matari: ":| Good",
2773
+ j_shobon: ":( Bad",
2774
+ j_uwan: ":_( Miss...",
2775
+
2776
+ j_kita: ":) O.K.",
2777
+ j_iknai: ":( N.G.",
2778
+
2779
+ j_adj: `Est-Adj.`,
2780
+ },
2781
+ };
2043
2782
 
2044
2783
  /**
2045
- * オンマウステキスト、確認メッセージ定義
2784
+ * オンマウステキスト、確認メッセージ定義(共通)
2046
2785
  */
2047
2786
  const g_msgObj = {
2787
+ reload: `説明文の言語を変更します。\nChange the language of the description.`,
2788
+ };
2048
2789
 
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境界線表示の透明度を設定します。`,
2790
+ /**
2791
+ * オンマウステキスト、確認メッセージ定義(言語別)
2792
+ */
2793
+ const g_lang_msgObj = {
2794
+
2795
+ Ja: {
2796
+ howto: `ゲーム画面の見方や設定の詳細についてのページへ移動します(GitHub Wiki)。`,
2797
+ dataReset: `この作品で保存されているハイスコアや\nAdjustment情報等をリセットします。`,
2798
+ github: `Dancing☆Onigiri (CW Edition)のGitHubページへ移動します。`,
2799
+ security: `Dancing☆Onigiri (CW Edition)のサポート情報ページへ移動します。`,
2800
+
2801
+ dataResetConfirm: `この作品のローカル設定をクリアします。よろしいですか?\n(ハイスコアやAdjustment等のデータがクリアされます)`,
2802
+ keyResetConfirm: `キーを初期配置に戻します。よろしいですか?`,
2803
+
2804
+ difficulty: `譜面を選択します。`,
2805
+ speed: `矢印の流れる速度を設定します。\n外側のボタンは1x単位、内側は0.25x単位で変更できます。`,
2806
+ motion: `矢印の速度を一定ではなく、\n変動させるモーションをつけるか設定します。`,
2807
+ reverse: `矢印の流れる向きを設定します。`,
2808
+ scroll: `各レーンのスクロール方向をパターンに沿って設定します。\nReverse:ONでスクロール方向を反転します。`,
2809
+ shuffle: `譜面を左右反転したり、ランダムにします。\nランダムにした場合は別譜面扱いとなり、ハイスコアは保存されません。`,
2810
+ autoPlay: `オートプレイや一部キーを自動で打たせる設定を行います。\nオートプレイ時はハイスコアを保存しません。`,
2811
+ gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量`,
2812
+ adjustment: `タイミングにズレを感じる場合、\n数値を変えることでフレーム単位のズレを直すことができます。\n外側のボタンは5f刻み、真ん中は1f刻み、内側は0.5f刻みで調整できます。`,
2813
+ fadein: `譜面を途中から再生します。\n途中から開始した場合はハイスコアを保存しません。`,
2814
+ volume: `ゲーム内の音量を設定します。`,
2815
+
2816
+ graph: `速度変化や譜面密度状況、\n譜面の難易度など譜面の詳細情報を表示します。`,
2817
+ dataSave: `ハイスコア、リバース設定、\nキーコンフィグの保存の有無を設定します。`,
2818
+ toDisplay: `プレイ画面上のオブジェクトの\n表示・非表示(一部透明度)を設定します。`,
2819
+ toSettings: `SETTINGS画面へ戻ります。`,
2820
+
2821
+ d_stepzone: `ステップゾーンの表示`,
2822
+ d_judgment: `判定キャラクタ・コンボの表示`,
2823
+ d_fastslow: `Fast/Slow表示`,
2824
+ d_lifegauge: `ライフゲージの表示`,
2825
+ d_score: `現時点の判定数を表示`,
2826
+ d_musicinfo: `音楽情報(時間表示含む)`,
2827
+ d_filterline: `Hidden+, Sudden+使用時のフィルターの境界線表示`,
2828
+ d_speed: `途中変速、個別加速の有効化設定`,
2829
+ d_color: `色変化の有効化設定`,
2830
+ d_lyrics: `歌詞表示の有効化設定`,
2831
+ d_background: `背景・マスクモーションの有効化設定`,
2832
+ d_arroweffect: `矢印・フリーズアローモーションの有効化設定`,
2833
+ d_special: `作品固有の特殊演出の有効化設定`,
2834
+
2835
+ appearance: `流れる矢印の見え方を制御します。`,
2836
+ opacity: `判定キャラクタ、コンボ数、Fast/Slow、Hidden+/Sudden+の\n境界線表示の透明度を設定します。`,
2837
+
2838
+ configType: `キーコンフィグ対象を切り替えます。\n[Main] メインキーのみ, [Replaced] 代替キーのみ, [ALL] 全て`,
2839
+ colorType: `矢印色の配色パターンを変更します。\nType1~4選択時は色変化が自動でOFFになります。\n[Type0] グラデーション切替, [Type1~4] デフォルトパターン`,
2840
+ imgType: `矢印・フリーズアローなどのオブジェクトの見た目を変更します。`,
2841
+ colorGroup: `矢印・フリーズアロー色グループの割り当てパターンを変更します。`,
2842
+ shuffleGroup: `Mirror/Asym-Mirror/Random/S-Random選択時、シャッフルするグループを変更します。\n矢印の上にある同じ数字同士でシャッフルします。`,
2843
+ },
2091
2844
 
2845
+ En: {
2846
+ howto: `Go to the page about the game screen and settings at GitHub Wiki.`,
2847
+ dataReset: `Resets the high score, adjustment information, etc. saved in this game.`,
2848
+ github: `Go to the GitHub page of Dancing Onigiri "CW Edition".`,
2849
+ security: `Go to the support information page for Dancing Onigiri "CW Edition".`,
2850
+
2851
+ dataResetConfirm: `Delete the local settings in this game. Is it OK?\n(High score, adjustment, volume and some settings will be initialized)`,
2852
+ keyResetConfirm: `Resets the assigned key to the initial state. Is it OK?`,
2853
+
2854
+ difficulty: `Select a chart.`,
2855
+ speed: `Set the speed of the sequences.\nThe outer button can be changed in 1x increments and the inner button in 0.25x increments.`,
2856
+ motion: `Set whether to turn on acceleration or deceleration\nin the middle of the sequence.`,
2857
+ reverse: `Set the flow direction of the sequences.`,
2858
+ scroll: `Set the scroll direction for each lane according to the pattern.\nIf "Reverse:ON" sets, reverse the scroll direction.`,
2859
+ 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.`,
2860
+ autoPlay: `Set to auto play and to hit some keys automatically.\nHigh score is not saved during auto play.`,
2861
+ gauge: `Set the clear condition.\n[Start] initial value, [Border] borderline value (hyphen means zero),\n[Recovery] recovery amount, [Damage] damage amount`,
2862
+ 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.`,
2863
+ fadein: `Plays the chart from the middle.\nIf you start in the middle, the high score will not be saved.`,
2864
+ volume: `Set the in-game volume.`,
2865
+
2866
+ graph: `Displays detailed information about the chart, such as sequences' speed changes, chart's density status, and chart's difficulty.`,
2867
+ dataSave: `Set whether to save the high score, reverse setting, and key config.`,
2868
+ toDisplay: `Set the display or non-display (partial transparency) of objects on the play screen.`,
2869
+ toSettings: `Return to the SETTINGS screen.`,
2870
+
2871
+ d_stepzone: `Display step zone`,
2872
+ d_judgment: `Display judgment and combo counts`,
2873
+ d_fastslow: `Display fast and slow `,
2874
+ d_lifegauge: `Display lifegauge`,
2875
+ d_score: `Display the current number of judgments`,
2876
+ d_musicinfo: `Display the music credits and current time`,
2877
+ d_filterline: `Filter border display when using "Hidden+" or "Sudden+"`,
2878
+ d_speed: `Enable speed change settings`,
2879
+ d_color: `Enable color change settings`,
2880
+ d_lyrics: `Enable lyrics display`,
2881
+ d_background: `Enable background images and animations`,
2882
+ d_arroweffect: `Enable sequences' animations`,
2883
+ d_special: `Enable setting of special effects to the work`,
2884
+
2885
+ appearance: `Controls how the flowing sequences look.`,
2886
+ opacity: `Set the transparency of some objects such as judgment, combo counts, fast and slow`,
2887
+
2888
+ configType: `Switch the key config target.\n[Main] main keys only, [Replaced] alternate keys only, [ALL] all keys`,
2889
+ 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`,
2890
+ imgType: `Change the appearance of sequences.`,
2891
+ colorGroup: `Change the sequences color group assignment pattern.`,
2892
+ shuffleGroup: `Change the shuffle group when Mirror, Asym-Mirror, Random or S-Random are selected.\nShuffle with the same numbers listed above.`,
2893
+ },
2894
+
2895
+ };
2896
+
2897
+ /**
2898
+ * エラーメッセージ管理
2899
+ */
2900
+ const g_errMsgObj = {
2901
+ title: [],
2902
+ option: [],
2903
+ settingsDisplay: [],
2904
+ loading: [],
2905
+ main: [],
2906
+ result: [],
2907
+ };
2908
+
2909
+ /**
2910
+ * カスタム関数の定義
2911
+ * - 挿入場所ごとに名前を分けて定義
2912
+ */
2913
+ const g_customJsObj = {
2914
+ title: [],
2915
+ titleEnterFrame: [],
2916
+ option: [],
2917
+ difficulty: [],
2918
+ settingsDisplay: [],
2919
+ keyconfig: [],
2920
+
2921
+ preloading: [],
2922
+ loading: [],
2923
+ progress: [],
2924
+ main: [],
2925
+ dummyArrow: [],
2926
+ dummyFrz: [],
2927
+
2928
+ judg_ii: [],
2929
+ judg_shakin: [],
2930
+ judg_matari: [],
2931
+ judg_shobon: [],
2932
+ judg_uwan: [],
2933
+ judg_kita: [],
2934
+ judg_iknai: [],
2935
+
2936
+ mainEnterFrame: [],
2937
+ result: [],
2938
+ resultEnterFrame: [],
2939
+ };
2940
+
2941
+ /**
2942
+ * スキン関数の定義
2943
+ * - 挿入場所ごとに名前を分けて定義
2944
+ */
2945
+ const g_skinJsObj = {
2946
+ title: [],
2947
+ option: [],
2948
+ settingsDisplay: [],
2949
+ keyconfig: [],
2950
+
2951
+ preloading: [],
2952
+ loading: [],
2953
+ main: [],
2954
+ result: [],
2092
2955
  };
2956
+
2957
+ /**
2958
+ * 従来のカスタム関数をg_customJsObj, g_skinJsObjへ追加
2959
+ * - customjsファイルを読み込んだ直後にこの関数を呼び出している
2960
+ */
2961
+ const loadLegacyCustomFunc = _ => {
2962
+
2963
+ // タイトル
2964
+ if (typeof customTitleInit === C_TYP_FUNCTION) {
2965
+ g_customJsObj.title.push(customTitleInit);
2966
+ }
2967
+ if (typeof customTitleInit2 === C_TYP_FUNCTION) {
2968
+ g_customJsObj.title.push(customTitleInit2);
2969
+ }
2970
+ if (typeof customTitleEnterFrame === C_TYP_FUNCTION) {
2971
+ g_customJsObj.titleEnterFrame.push(customTitleEnterFrame);
2972
+ }
2973
+ if (typeof customTitleEnterFrame2 === C_TYP_FUNCTION) {
2974
+ g_customJsObj.titleEnterFrame.push(customTitleEnterFrame2);
2975
+ }
2976
+ if (typeof skinTitleInit === C_TYP_FUNCTION) {
2977
+ g_skinJsObj.title.push(skinTitleInit);
2978
+ }
2979
+ if (typeof skinTitleInit2 === C_TYP_FUNCTION) {
2980
+ g_skinJsObj.title.push(skinTitleInit2);
2981
+ }
2982
+
2983
+ // 主要設定
2984
+ if (typeof customOptionInit === C_TYP_FUNCTION) {
2985
+ g_customJsObj.option.push(customOptionInit);
2986
+ }
2987
+ if (typeof customOptionInit2 === C_TYP_FUNCTION) {
2988
+ g_customJsObj.option.push(customOptionInit2);
2989
+ }
2990
+ if (typeof skinOptionInit === C_TYP_FUNCTION) {
2991
+ g_skinJsObj.option.push(skinOptionInit);
2992
+ }
2993
+ if (typeof skinOptionInit2 === C_TYP_FUNCTION) {
2994
+ g_skinJsObj.option.push(skinOptionInit2);
2995
+ }
2996
+
2997
+ if (typeof customSetDifficulty === C_TYP_FUNCTION) {
2998
+ g_customJsObj.difficulty.push(customSetDifficulty);
2999
+ }
3000
+ if (typeof customSetDifficulty2 === C_TYP_FUNCTION) {
3001
+ g_customJsObj.difficulty.push(customSetDifficulty2);
3002
+ }
3003
+
3004
+ // ディスプレイ設定
3005
+ if (typeof customSettingsDisplayInit === C_TYP_FUNCTION) {
3006
+ g_customJsObj.settingsDisplay.push(customSettingsDisplayInit);
3007
+ }
3008
+ if (typeof customSettingsDisplayInit2 === C_TYP_FUNCTION) {
3009
+ g_customJsObj.settingsDisplay.push(customSettingsDisplayInit2);
3010
+ }
3011
+ if (typeof skinSettingsDisplayInit === C_TYP_FUNCTION) {
3012
+ g_skinJsObj.settingsDisplay.push(skinSettingsDisplayInit);
3013
+ }
3014
+ if (typeof skinSettingsDisplayInit2 === C_TYP_FUNCTION) {
3015
+ g_skinJsObj.settingsDisplay.push(skinSettingsDisplayInit2);
3016
+ }
3017
+
3018
+ // キーコンフィグ
3019
+ if (typeof customKeyConfigInit === C_TYP_FUNCTION) {
3020
+ g_customJsObj.keyconfig.push(customKeyConfigInit);
3021
+ }
3022
+ if (typeof customKeyConfigInit2 === C_TYP_FUNCTION) {
3023
+ g_customJsObj.keyconfig.push(customKeyConfigInit2);
3024
+ }
3025
+ if (typeof skinKeyConfigInit === C_TYP_FUNCTION) {
3026
+ g_skinJsObj.keyconfig.push(skinKeyConfigInit);
3027
+ }
3028
+ if (typeof skinKeyConfigInit2 === C_TYP_FUNCTION) {
3029
+ g_skinJsObj.keyconfig.push(skinKeyConfigInit2);
3030
+ }
3031
+
3032
+ // ローディング
3033
+ if (typeof customPreloadingInit === C_TYP_FUNCTION) {
3034
+ g_customJsObj.preloading.push(customPreloadingInit);
3035
+ }
3036
+ if (typeof customPreloadingInit2 === C_TYP_FUNCTION) {
3037
+ g_customJsObj.preloading.push(customPreloadingInit2);
3038
+ }
3039
+ if (typeof skinPreloadingInit === C_TYP_FUNCTION) {
3040
+ g_skinJsObj.preloading.push(skinPreloadingInit);
3041
+ }
3042
+ if (typeof skinPreloadingInit2 === C_TYP_FUNCTION) {
3043
+ g_skinJsObj.preloading.push(skinPreloadingInit2);
3044
+ }
3045
+ if (typeof customLoadingInit === C_TYP_FUNCTION) {
3046
+ g_customJsObj.loading.push(customLoadingInit);
3047
+ }
3048
+ if (typeof customLoadingInit2 === C_TYP_FUNCTION) {
3049
+ g_customJsObj.loading.push(customLoadingInit2);
3050
+ }
3051
+ if (typeof customLoadingProgress === C_TYP_FUNCTION) {
3052
+ g_customJsObj.progress.push(customLoadingProgress);
3053
+ }
3054
+ if (typeof customLoadingProgress2 === C_TYP_FUNCTION) {
3055
+ g_customJsObj.progress.push(customLoadingProgress2);
3056
+ }
3057
+
3058
+ // メイン
3059
+ if (typeof customMainInit === C_TYP_FUNCTION) {
3060
+ g_customJsObj.main.push(customMainInit);
3061
+ }
3062
+ if (typeof customMainInit2 === C_TYP_FUNCTION) {
3063
+ g_customJsObj.main.push(customMainInit2);
3064
+ }
3065
+ if (typeof customJudgeDummyArrow === C_TYP_FUNCTION) {
3066
+ g_customJsObj.dummyArrow.push(customJudgeDummyArrow);
3067
+ }
3068
+ if (typeof customJudgeDummyArrow2 === C_TYP_FUNCTION) {
3069
+ g_customJsObj.dummyArrow.push(customJudgeDummyArrow2);
3070
+ }
3071
+ if (typeof customJudgeDummyFrz === C_TYP_FUNCTION) {
3072
+ g_customJsObj.dummyFrz.push(customJudgeDummyFrz);
3073
+ }
3074
+ if (typeof customJudgeDummyFrz2 === C_TYP_FUNCTION) {
3075
+ g_customJsObj.dummyFrz.push(customJudgeDummyFrz2);
3076
+ }
3077
+ if (typeof customMainEnterFrame === C_TYP_FUNCTION) {
3078
+ g_customJsObj.mainEnterFrame.push(customMainEnterFrame);
3079
+ }
3080
+ if (typeof customMainEnterFrame2 === C_TYP_FUNCTION) {
3081
+ g_customJsObj.mainEnterFrame.push(customMainEnterFrame2);
3082
+ }
3083
+ if (typeof skinMainInit === C_TYP_FUNCTION) {
3084
+ g_skinJsObj.main.push(skinMainInit);
3085
+ }
3086
+ if (typeof skinMainInit2 === C_TYP_FUNCTION) {
3087
+ g_skinJsObj.main.push(skinMainInit2);
3088
+ }
3089
+
3090
+ // 判定
3091
+ if (typeof customJudgeIi === C_TYP_FUNCTION) {
3092
+ g_customJsObj.judg_ii.push(customJudgeIi);
3093
+ }
3094
+ if (typeof customJudgeIi2 === C_TYP_FUNCTION) {
3095
+ g_customJsObj.judg_ii.push(customJudgeIi2);
3096
+ }
3097
+ if (typeof customJudgeShakin === C_TYP_FUNCTION) {
3098
+ g_customJsObj.judg_shakin.push(customJudgeShakin);
3099
+ }
3100
+ if (typeof customJudgeShakin2 === C_TYP_FUNCTION) {
3101
+ g_customJsObj.judg_shakin.push(customJudgeShakin2);
3102
+ }
3103
+ if (typeof customJudgeMatari === C_TYP_FUNCTION) {
3104
+ g_customJsObj.judg_matari.push(customJudgeMatari);
3105
+ }
3106
+ if (typeof customJudgeMatari2 === C_TYP_FUNCTION) {
3107
+ g_customJsObj.judg_matari.push(customJudgeMatari2);
3108
+ }
3109
+ if (typeof customJudgeShobon === C_TYP_FUNCTION) {
3110
+ g_customJsObj.judg_shobon.push(customJudgeShobon);
3111
+ }
3112
+ if (typeof customJudgeShobon2 === C_TYP_FUNCTION) {
3113
+ g_customJsObj.judg_shobon.push(customJudgeShobon2);
3114
+ }
3115
+ if (typeof customJudgeUwan === C_TYP_FUNCTION) {
3116
+ g_customJsObj.judg_uwan.push(customJudgeUwan);
3117
+ }
3118
+ if (typeof customJudgeUwan2 === C_TYP_FUNCTION) {
3119
+ g_customJsObj.judg_uwan.push(customJudgeUwan2);
3120
+ }
3121
+ if (typeof customJudgeKita === C_TYP_FUNCTION) {
3122
+ g_customJsObj.judg_kita.push(customJudgeKita);
3123
+ }
3124
+ if (typeof customJudgeKita2 === C_TYP_FUNCTION) {
3125
+ g_customJsObj.judg_kita.push(customJudgeKita2);
3126
+ }
3127
+ if (typeof customJudgeIknai === C_TYP_FUNCTION) {
3128
+ g_customJsObj.judg_iknai.push(customJudgeIknai);
3129
+ }
3130
+ if (typeof customJudgeIknai2 === C_TYP_FUNCTION) {
3131
+ g_customJsObj.judg_iknai.push(customJudgeIknai2);
3132
+ }
3133
+
3134
+ // リザルト
3135
+ if (typeof customResultInit === C_TYP_FUNCTION) {
3136
+ g_customJsObj.result.push(customResultInit);
3137
+ }
3138
+ if (typeof customResultInit2 === C_TYP_FUNCTION) {
3139
+ g_customJsObj.result.push(customResultInit2);
3140
+ }
3141
+ if (typeof customResultEnterFrame === C_TYP_FUNCTION) {
3142
+ g_customJsObj.resultEnterFrame.push(customResultEnterFrame);
3143
+ }
3144
+ if (typeof customResultEnterFrame2 === C_TYP_FUNCTION) {
3145
+ g_customJsObj.resultEnterFrame.push(customResultEnterFrame2);
3146
+ }
3147
+ if (typeof skinResultInit === C_TYP_FUNCTION) {
3148
+ g_skinJsObj.result.push(skinResultInit);
3149
+ }
3150
+ if (typeof skinResultInit2 === C_TYP_FUNCTION) {
3151
+ g_skinJsObj.result.push(skinResultInit2);
3152
+ }
3153
+ };