Elin Modding Docs Doc
Loading...
Searching...
No Matches
CoreConfig.cs
1using System;
2using System.Collections.Generic;
3using System.IO;
4using System.Text.RegularExpressions;
5using Newtonsoft.Json;
6using UnityEngine;
7using UnityEngine.UI;
8
9// Token: 0x02000009 RID: 9
10[JsonObject(MemberSerialization.OptOut)]
11[Serializable]
12public class CoreConfig : EClass
13{
14 // Token: 0x1700002C RID: 44
15 // (get) Token: 0x06000069 RID: 105 RVA: 0x00003A31 File Offset: 0x00001C31
16 public static string path
17 {
18 get
19 {
20 return CorePath.ConfigFile;
21 }
22 }
23
24 // Token: 0x1700002D RID: 45
25 // (get) Token: 0x0600006A RID: 106 RVA: 0x00003A38 File Offset: 0x00001C38
26 public static int ZoomStep
27 {
28 get
29 {
30 if (!EClass.debug.enable)
31 {
32 return 5;
33 }
34 return 5;
35 }
36 }
37
38 // Token: 0x1700002E RID: 46
39 // (get) Token: 0x0600006B RID: 107 RVA: 0x00003A49 File Offset: 0x00001C49
40 [JsonIgnore]
41 public CameraSupport camSupport
42 {
43 get
44 {
45 return EClass.scene.camSupport;
46 }
47 }
48
49 // Token: 0x0600006C RID: 108 RVA: 0x00003A55 File Offset: 0x00001C55
50 public static bool Exist()
51 {
52 return File.Exists(CoreConfig.path) && !EClass.debug.useNewConfig;
53 }
54
55 // Token: 0x0600006D RID: 109 RVA: 0x00003A74 File Offset: 0x00001C74
56 public static CoreConfig TryLoadConfig()
57 {
58 if (!File.Exists(CoreConfig.path) || EClass.debug.useNewConfig)
59 {
60 return null;
61 }
62 if (!File.Exists(CorePath.VersionFile))
63 {
64 return null;
65 }
66 CoreConfig coreConfig = IO.LoadFile<CoreConfig>(CoreConfig.path, false, null);
67 if (!CoreConfig.IsCompatible(coreConfig.version))
68 {
69 Debug.Log("Config version is different. deleting:" + coreConfig.version.ToString() + "/" + EClass.core.version.GetText());
70 return null;
71 }
72 if (coreConfig.version.IsBelow(0, 22, 17))
73 {
74 coreConfig.game.tutorial = true;
75 }
76 if (coreConfig.version.IsBelow(0, 22, 24))
77 {
78 coreConfig.ui.balloonBG = true;
79 }
80 if (coreConfig.input.keys.examine.key == KeyCode.None)
81 {
82 coreConfig.input.keys.examine.key = KeyCode.X;
83 }
84 if (coreConfig.input.keys.getAll.key == KeyCode.None)
85 {
86 coreConfig.input.keys.getAll.key = KeyCode.G;
87 }
88 return coreConfig;
89 }
90
91 // Token: 0x0600006E RID: 110 RVA: 0x00003B92 File Offset: 0x00001D92
92 public static bool IsCompatible(global::Version v)
93 {
94 return v.minor >= 22;
95 }
96
97 // Token: 0x0600006F RID: 111 RVA: 0x00003BA4 File Offset: 0x00001DA4
98 public static void Init()
99 {
100 if (EClass.core.config == null)
101 {
102 Debug.Log("Creating new config.");
103 CoreConfig coreConfig = EClass.core.config = IO.DeepCopy<CoreConfig>(EClass.setting.config);
104 coreConfig.SetLang(EClass.core.langCode);
105 if (!EClass.debug.useNewConfig)
106 {
107 coreConfig.Save();
108 }
109 coreConfig.GetPostEffectProfile(false).OnChangeProfile();
110 if (EClass.debug.enable)
111 {
112 coreConfig.other.showTestOptions = true;
113 coreConfig.test.showNumbers = true;
114 coreConfig.game.waiter = 0;
115 coreConfig.game.advancedMenu = true;
116 }
117 }
118 EClass.core.config.OnInit();
119 }
120
121 // Token: 0x06000070 RID: 112 RVA: 0x00003C60 File Offset: 0x00001E60
122 public void OnInit()
123 {
124 EClass.core.ui.skins.SetMainSkin(this.test.idSkin);
125 this.Apply();
126 if (EClass.debug.enable)
127 {
128 this.net.enable = false;
129 }
130 }
131
132 // Token: 0x06000071 RID: 113 RVA: 0x00003C9F File Offset: 0x00001E9F
133 public bool HasBackerRewardCode()
134 {
135 return ElinEncoder.IsValid(this.rewardCode);
136 }
137
138 // Token: 0x06000072 RID: 114 RVA: 0x00003CAC File Offset: 0x00001EAC
139 public static void Reset()
140 {
141 string text = EClass.core.config.lang;
142 string text2 = EClass.core.config.rewardCode;
143 EClass.core.config = IO.DeepCopy<CoreConfig>(EClass.setting.config);
144 EClass.core.config.SetLang(text);
145 EClass.core.config.OnReset();
146 EClass.core.config.rewardCode = text2;
147 }
148
149 // Token: 0x06000073 RID: 115 RVA: 0x00003D24 File Offset: 0x00001F24
150 public static void ResetGeneral()
151 {
152 CoreConfig coreConfig = IO.DeepCopy<CoreConfig>(EClass.setting.config);
153 EClass.core.config.ui = coreConfig.ui;
154 EClass.core.config.font = coreConfig.font;
155 EClass.core.config.sound = coreConfig.sound;
156 EClass.core.config.Apply();
157 EClass.core.config.ApplyFont();
158 }
159
160 // Token: 0x06000074 RID: 116 RVA: 0x00003DA0 File Offset: 0x00001FA0
161 public static void ResetGraphics()
162 {
163 CoreConfig coreConfig = IO.DeepCopy<CoreConfig>(EClass.setting.config);
164 EClass.core.config.graphic = coreConfig.graphic;
165 EClass.core.config.GetPostEffectProfile(false).OnChangeProfile();
166 EClass.core.config.Apply();
167 }
168
169 // Token: 0x06000075 RID: 117 RVA: 0x00003DF8 File Offset: 0x00001FF8
170 public static void ResetGame()
171 {
172 CoreConfig coreConfig = IO.DeepCopy<CoreConfig>(EClass.setting.config);
173 EClass.core.config.game = coreConfig.game;
174 EClass.core.config.net = coreConfig.net;
175 EClass.core.config.backer = coreConfig.backer;
176 EClass.core.config.Apply();
177 }
178
179 // Token: 0x06000076 RID: 118 RVA: 0x00003E64 File Offset: 0x00002064
180 public static void ResetInput()
181 {
182 CoreConfig coreConfig = IO.DeepCopy<CoreConfig>(EClass.setting.config);
183 EClass.core.config.input = coreConfig.input;
184 EClass.core.config.camera = coreConfig.camera;
185 EClass.core.config.Apply();
186 }
187
188 // Token: 0x06000077 RID: 119 RVA: 0x00003EBC File Offset: 0x000020BC
189 public static void ResetOther()
190 {
191 CoreConfig coreConfig = IO.DeepCopy<CoreConfig>(EClass.setting.config);
192 EClass.core.config.fix = coreConfig.fix;
193 EClass.core.config.other = coreConfig.other;
194 EClass.core.config.Apply();
195 }
196
197 // Token: 0x06000078 RID: 120 RVA: 0x00003F14 File Offset: 0x00002114
198 public static void ResetTest()
199 {
200 CoreConfig coreConfig = IO.DeepCopy<CoreConfig>(EClass.setting.config);
201 EClass.core.config.test = coreConfig.test;
202 EClass.core.config.Apply();
203 }
204
205 // Token: 0x06000079 RID: 121 RVA: 0x00003F55 File Offset: 0x00002155
206 public void OnReset()
207 {
208 EClass.core.config.GetPostEffectProfile(false).OnChangeProfile();
209 this.Apply();
210 this.ApplyFont();
211 this.ApplySkin();
212 }
213
214 // Token: 0x0600007A RID: 122 RVA: 0x00003F7E File Offset: 0x0000217E
215 public void SetLang(string id)
216 {
217 this.lang = id;
218 }
219
220 // Token: 0x0600007B RID: 123 RVA: 0x00003F88 File Offset: 0x00002188
221 public void Save()
222 {
223 this.version = EClass.core.version;
224 IO.SaveFile(CoreConfig.path, this, false, IO.jsWriteConfig);
225 IO.SaveFile(CorePath.VersionFile, this.version, false, null);
226 Debug.Log("Config saved to " + CoreConfig.path);
227 }
228
229 // Token: 0x0600007C RID: 124 RVA: 0x00003FE1 File Offset: 0x000021E1
230 public void OnChangeResolution()
231 {
232 this.ApplyScale();
233 }
234
235 // Token: 0x0600007D RID: 125 RVA: 0x00003FEC File Offset: 0x000021EC
236 public void ApplyFPS(bool force = false)
237 {
238 if (!EClass.core.IsGameStarted && !force)
239 {
240 QualitySettings.vSyncCount = 0;
241 Application.targetFrameRate = 60;
242 return;
243 }
244 if (this.graphic.vsync)
245 {
246 QualitySettings.vSyncCount = 1;
247 Application.targetFrameRate = 60;
248 return;
249 }
250 QualitySettings.vSyncCount = 0;
251 Application.targetFrameRate = this._framerates[this.graphic.fps];
252 }
253
254 // Token: 0x0600007E RID: 126 RVA: 0x00004050 File Offset: 0x00002250
255 public void Apply()
256 {
257 if (this.ignoreApply)
258 {
259 return;
260 }
261 EInput.SetKeyMap(this.input.keys);
262 this.ApplyFPS(false);
263 Application.runInBackground = (Application.isEditor || this.other.runBackground);
264 this.ApplyVolume();
265 this.ApplyGrading();
266 this.ApplyHUD();
267 this.ApplyResolution(false);
268 Window.openLastTab = this.ui.openLastTab;
269 Layer.closeOnRightClick = this.ui.rightClickClose;
270 RenderObject.animeSetting = EClass.core.gameSetting.render.anime;
271 RenderObject.renderSetting = (RenderData.renderSetting = EClass.core.gameSetting.render);
272 TC._setting = EClass.core.gameSetting.render.tc;
273 UIScrollView.sensitivity = this.ui.ScrollSensitivity * 5f;
274 EClass.core.canvas.pixelPerfect = this.graphic.pixelperfectUI;
275 EClass.screen.RefreshScreenSize();
276 CharaRenderer._animeFrame = EClass.setting.render.anime.animeStep[this.test.animeFrame];
277 CharaRenderer._animeFramePCC = EClass.setting.render.anime.animeStep[this.test.animeFramePCC];
278 CharaRenderer.smoothmove = this.camera.smoothMove;
279 CharaRenderer._animeFramePC = (this.camera.smoothMove ? 6000 : this.camera.moveframe);
280 Scene.skipAnime = true;
281 QualitySettings.maxQueuedFrames = 0;
282 PopManager.outlineAlpha = this.ui.outlineAlpha;
283 Window.animateWindow = this.ui.animeWindow;
284 EInput.rightScroll = this.game.rightScroll;
285 EInput.buttonScroll = (this.game.rightScroll ? EInput.rightMouse : EInput.middleMouse);
286 EInput.antiMissClick = 0.1f * (float)this.other.antiMissClick;
287 this.camSupport.bloom.enabled = this.graphic.bloom;
288 this.camSupport.beautify.bloom = this.test.bloom2;
289 this.camSupport.cam.allowHDR = this.graphic.hdr;
290 this.ApplyScale();
291 }
292
293 // Token: 0x0600007F RID: 127 RVA: 0x0000429C File Offset: 0x0000249C
294 public void ApplyResolution(bool force = false)
295 {
296 if (this.graphic.fixedResolution)
297 {
298 force = true;
299 }
300 if (force)
301 {
302 Screen.SetResolution(this.graphic.w, this.graphic.h, this.graphic.fullScreen);
303 }
304 Screen.fullScreen = this.graphic.fullScreen;
305 }
306
307 // Token: 0x06000080 RID: 128 RVA: 0x000042F4 File Offset: 0x000024F4
308 public void ApplyScale()
309 {
310 float num = (float)this.ui.scale * 0.05f;
311 if (this.ui.autoscale)
312 {
313 float a = 0.55f;
314 float b = num + 0.05f;
315 num = 0.01f * (float)Mathf.RoundToInt(Mathf.Lerp(a, b, (float)Screen.height / 1080f) * 100f);
316 }
317 if (this.ui.secureMinWidth && Screen.width < EClass.core.ui.minWidth)
318 {
319 float num2 = (float)Screen.width / (float)EClass.core.ui.minWidth;
320 if (num2 < num)
321 {
322 num = num2;
323 }
324 }
325 Debug.Log("#UI ApplyScale:" + num.ToString());
326 EClass.core.canvas.GetComponent<CanvasScaler>().scaleFactor = num;
327 }
328
329 // Token: 0x06000081 RID: 129 RVA: 0x000043C1 File Offset: 0x000025C1
330 public void ApplyHUD()
331 {
332 }
333
334 // Token: 0x06000082 RID: 130 RVA: 0x000043C3 File Offset: 0x000025C3
335 public void ApplyZoom(float a)
336 {
337 this.camSupport.Zoom = a;
338 EClass.screen.RefreshScreenSize();
339 this.camSupport.OnChangeResolution();
340 }
341
342 // Token: 0x06000083 RID: 131 RVA: 0x000043E8 File Offset: 0x000025E8
343 public PostEffectProfile GetPostEffectProfile(bool replaceWorld = false)
344 {
345 string text = this.graphic.idPostProfile.IsEmpty("None");
346 if (replaceWorld && EClass.core.IsGameStarted && EClass.core.game.activeZone.IsRegion && text != "None")
347 {
348 text = "NFAA";
349 }
350 return ResourceCache.Load<PostEffectProfile>("Scene/Profile/PostEffect/" + text);
351 }
352
353 // Token: 0x06000084 RID: 132 RVA: 0x00004454 File Offset: 0x00002654
354 public void ApplyGrading()
355 {
356 PostEffectProfile postEffectProfile = this.GetPostEffectProfile(false);
357 ScreenGrading grading = this.camSupport.grading;
358 grading.userSaturation = this.graphic.saturation + postEffectProfile.Saturation;
359 grading.userBrightness = this.graphic.brightness + postEffectProfile.Brightness;
360 grading.userContrast = this.graphic.contrast + postEffectProfile.Contrast;
361 this.camSupport.beautify.saturate = this.graphic.vibrance + grading.profile.Vibrance;
362 this.camSupport.kuwahara.enabled = this.graphic.kuwahara;
363 this.camSupport.blur.enabled = (this.graphic.blur > 0);
364 this.camSupport.blur.Amount = 0.01f * (float)this.graphic.blur;
365 if (EClass.core.IsGameStarted)
366 {
367 EClass.screen.RefreshGrading();
368 }
369 this.camSupport.OnChangeResolution();
370 this.RefreshUIBrightness();
371 postEffectProfile.Apply(EClass.scene.cam);
372 }
373
374 // Token: 0x06000085 RID: 133 RVA: 0x00004578 File Offset: 0x00002778
375 public void RefreshUIBrightness()
376 {
377 ScreenGrading grading = this.camSupport.grading;
378 float num = 0f;
379 float num2 = 0f;
380 if (EClass.core.IsGameStarted)
381 {
382 if (this.ui.dynamicBrightness && (EClass.world.date.IsNight || EClass._map.config.indoor))
383 {
384 num -= 0.05f * this.ui.dynamicBrightnessMod;
385 }
386 }
387 else
388 {
389 num = -0.05f;
390 }
391 Shader.SetGlobalFloat("_UIBrightness", 0.01f * (float)this.ui.brightness + grading.profile.uiBrightness + num);
392 Shader.SetGlobalFloat("_UIContrast", 0.01f * (float)this.ui.contrast + grading.profile.uiContrast + EClass.core.ui.lightContrast + num2);
393 }
394
395 // Token: 0x06000086 RID: 134 RVA: 0x0000465C File Offset: 0x0000285C
396 public void ApplyVolume()
397 {
398 this.SetVolume("VolumeMaster", this.sound.volumeMaster);
399 this.SetVolume("VolumeBGM", EClass.Sound.muteBGM ? 0f : this.sound.volumeBGM);
400 this.SetVolume("VolumeSpatialBGM", this.sound.volumeBGM);
401 this.SetVolume("VolumeSFX", this.sound.volumeSFX);
402 this.SetVolume("VolumeAmbience", this.sound.volumeAMB);
403 this.SetBGMInterval();
404 }
405
406 // Token: 0x06000087 RID: 135 RVA: 0x000046F0 File Offset: 0x000028F0
407 public void SetBGMInterval()
408 {
409 if (EClass.core.IsGameStarted)
410 {
411 EClass._map.plDay.interval = this.other.bgmInterval * 5f;
412 }
413 }
414
415 // Token: 0x06000088 RID: 136 RVA: 0x0000471E File Offset: 0x0000291E
416 public void SetVolume(string id, float v)
417 {
418 SoundManager.current.mixer.SetFloat(id, Mathf.Log((v < 0.01f) ? 0.01f : v) * 20f);
419 }
420
421 // Token: 0x06000089 RID: 137 RVA: 0x0000474C File Offset: 0x0000294C
422 public void OnSetLang()
423 {
424 SkinManager.Instance.InitFont();
425 this.ApplyFont();
426 }
427
428 // Token: 0x0600008A RID: 138 RVA: 0x00004760 File Offset: 0x00002960
429 public void ApplyFont()
430 {
431 EClass.core.ui.skins.SetFonts(this.font.fontUI, this.font.fontChatbox, this.font.fontBalloon, this.font.fontDialog, this.font.fontWidget, this.font.fontNews);
432 }
433
434 // Token: 0x0600008B RID: 139 RVA: 0x000047C3 File Offset: 0x000029C3
435 public void ApplySkin()
436 {
437 Core.Instance.ui.skins.SetMainSkin(this.test.idSkin);
438 EClass.core.ApplySkins();
439 }
440
441 // Token: 0x04000025 RID: 37
442 public global::Version version;
443
444 // Token: 0x04000026 RID: 38
445 public string lang = "JP";
446
447 // Token: 0x04000027 RID: 39
448 public string nameReport;
449
450 // Token: 0x04000028 RID: 40
451 public string emailReport;
452
453 // Token: 0x04000029 RID: 41
454 public string rewardCode;
455
456 // Token: 0x0400002A RID: 42
457 public bool compressSave;
458
459 // Token: 0x0400002B RID: 43
460 public new CoreConfig.UISetting ui;
461
462 // Token: 0x0400002C RID: 44
463 public CoreConfig.SoundSetting sound;
464
465 // Token: 0x0400002D RID: 45
466 public CoreConfig.FontSetting font;
467
468 // Token: 0x0400002E RID: 46
469 public CoreConfig.GraphicSetting graphic;
470
471 // Token: 0x0400002F RID: 47
472 public new CoreConfig.GameConfig game;
473
474 // Token: 0x04000030 RID: 48
475 public CoreConfig.NetSetting net;
476
477 // Token: 0x04000031 RID: 49
478 public CoreConfig.BackerContentConfig backer;
479
480 // Token: 0x04000032 RID: 50
481 public CoreConfig.InputSetting input;
482
483 // Token: 0x04000033 RID: 51
484 public CoreConfig.CameraConfig camera;
485
486 // Token: 0x04000034 RID: 52
487 public CoreConfig.OtherSetting other;
488
489 // Token: 0x04000035 RID: 53
490 public CoreConfig.Fix fix;
491
492 // Token: 0x04000036 RID: 54
493 public CoreConfig.Test test;
494
495 // Token: 0x04000037 RID: 55
496 public List<FontSource> customFonts;
497
498 // Token: 0x04000038 RID: 56
499 public HashSet<string> helpFlags = new HashSet<string>();
500
501 // Token: 0x04000039 RID: 57
502 public int[] colors = new int[10];
503
504 // Token: 0x0400003A RID: 58
505 [NonSerialized]
506 public bool ignoreApply;
507
508 // Token: 0x0400003B RID: 59
509 private int[] _framerates = new int[]
510 {
511 120,
512 60,
513 30,
514 15
515 };
516
517 // Token: 0x02000763 RID: 1891
518 public enum GameFunc
519 {
520 // Token: 0x04001D46 RID: 7494
521 None,
522 // Token: 0x04001D47 RID: 7495
523 ToggleZoom,
524 // Token: 0x04001D48 RID: 7496
525 ShowInv,
526 // Token: 0x04001D49 RID: 7497
527 ShowChara,
528 // Token: 0x04001D4A RID: 7498
529 ShowAbility,
530 // Token: 0x04001D4B RID: 7499
531 ToggleBuild,
532 // Token: 0x04001D4C RID: 7500
533 ShowJournal,
534 // Token: 0x04001D4D RID: 7501
535 EmuShift,
536 // Token: 0x04001D4E RID: 7502
537 EmuAlt,
538 // Token: 0x04001D4F RID: 7503
539 AllAction,
540 // Token: 0x04001D50 RID: 7504
541 ToggleNoRoof,
542 // Token: 0x04001D51 RID: 7505
543 OpenAllyInv,
544 // Token: 0x04001D52 RID: 7506
545 Talk,
546 // Token: 0x04001D53 RID: 7507
547 EmptyHand,
548 // Token: 0x04001D54 RID: 7508
549 Fire
550 }
551
552 // Token: 0x02000764 RID: 1892
553 public enum GameFuncBuild
554 {
555 // Token: 0x04001D56 RID: 7510
556 None,
557 // Token: 0x04001D57 RID: 7511
558 ExitBuildMode,
559 // Token: 0x04001D58 RID: 7512
560 Rotate,
561 // Token: 0x04001D59 RID: 7513
562 ToggleFreepos,
563 // Token: 0x04001D5A RID: 7514
564 SnapFreepos,
565 // Token: 0x04001D5B RID: 7515
566 ToggleRoof,
567 // Token: 0x04001D5C RID: 7516
568 ToggleSlope,
569 // Token: 0x04001D5D RID: 7517
570 ToggleWall,
571 // Token: 0x04001D5E RID: 7518
572 TogglePicker,
573 // Token: 0x04001D5F RID: 7519
574 ToggleBuildLight
575 }
576
577 // Token: 0x02000765 RID: 1893
578 public enum ScreenSnapType
579 {
580 // Token: 0x04001D61 RID: 7521
581 None,
582 // Token: 0x04001D62 RID: 7522
583 Default,
584 // Token: 0x04001D63 RID: 7523
585 Floor,
586 // Token: 0x04001D64 RID: 7524
587 Ceil,
588 // Token: 0x04001D65 RID: 7525
589 Hack3,
590 // Token: 0x04001D66 RID: 7526
591 Hack4,
592 // Token: 0x04001D67 RID: 7527
593 Hack5,
594 // Token: 0x04001D68 RID: 7528
595 Hack6,
596 // Token: 0x04001D69 RID: 7529
597 Hack7,
598 // Token: 0x04001D6A RID: 7530
599 Hack8,
600 // Token: 0x04001D6B RID: 7531
601 Hack9,
602 // Token: 0x04001D6C RID: 7532
603 Grid
604 }
605
606 // Token: 0x02000766 RID: 1894
607 [Serializable]
608 public class CameraConfig
609 {
610 // Token: 0x04001D6D RID: 7533
611 public bool invertX;
612
613 // Token: 0x04001D6E RID: 7534
614 public bool invertY;
615
616 // Token: 0x04001D6F RID: 7535
617 public bool edgeScroll;
618
619 // Token: 0x04001D70 RID: 7536
620 public bool zoomToMouse;
621
622 // Token: 0x04001D71 RID: 7537
623 public bool extendZoomMin;
624
625 // Token: 0x04001D72 RID: 7538
626 public bool extendZoomMax;
627
628 // Token: 0x04001D73 RID: 7539
629 public bool linearZoom;
630
631 // Token: 0x04001D74 RID: 7540
632 public bool smoothFollow;
633
634 // Token: 0x04001D75 RID: 7541
635 public bool smoothMove;
636
637 // Token: 0x04001D76 RID: 7542
638 public float senseKeyboard;
639
640 // Token: 0x04001D77 RID: 7543
641 public float sensEdge;
642
643 // Token: 0x04001D78 RID: 7544
644 public float sensDrag;
645
646 // Token: 0x04001D79 RID: 7545
647 public float momentum;
648
649 // Token: 0x04001D7A RID: 7546
650 public float zoomSpeed;
651
652 // Token: 0x04001D7B RID: 7547
653 public int defaultZoom;
654
655 // Token: 0x04001D7C RID: 7548
656 public int moveframe;
657
658 // Token: 0x04001D7D RID: 7549
659 public float[] zooms;
660 }
661
662 // Token: 0x02000767 RID: 1895
663 [Serializable]
664 public class GameConfig
665 {
666 // Token: 0x04001D7E RID: 7550
667 public bool autopause;
668
669 // Token: 0x04001D7F RID: 7551
670 public bool showQuickMenuHint;
671
672 // Token: 0x04001D80 RID: 7552
673 public bool dontRenderOutsideMap;
674
675 // Token: 0x04001D81 RID: 7553
676 public bool freePos;
677
678 // Token: 0x04001D82 RID: 7554
679 public bool showOffhand;
680
681 // Token: 0x04001D83 RID: 7555
682 public bool confirmGive;
683
684 // Token: 0x04001D84 RID: 7556
685 public bool confirmMapExit;
686
687 // Token: 0x04001D85 RID: 7557
688 public bool holdMiddleButtonToHold;
689
690 // Token: 0x04001D86 RID: 7558
691 public bool doubleClickToHold;
692
693 // Token: 0x04001D87 RID: 7559
694 public bool useAbilityOnHotkey;
695
696 // Token: 0x04001D88 RID: 7560
697 public float runDistance;
698
699 // Token: 0x04001D89 RID: 7561
700 public float angleMargin;
701
702 // Token: 0x04001D8A RID: 7562
703 public int newlineCount;
704
705 // Token: 0x04001D8B RID: 7563
706 public int showBorder;
707
708 // Token: 0x04001D8C RID: 7564
709 public int showRide;
710
711 // Token: 0x04001D8D RID: 7565
712 public int waiter;
713
714 // Token: 0x04001D8E RID: 7566
715 public bool altUI;
716
717 // Token: 0x04001D8F RID: 7567
718 public bool altInv;
719
720 // Token: 0x04001D90 RID: 7568
721 public bool altAbility;
722
723 // Token: 0x04001D91 RID: 7569
724 public bool altCraft;
725
726 // Token: 0x04001D92 RID: 7570
727 public bool autoSave;
728
729 // Token: 0x04001D93 RID: 7571
730 public bool alwaysUpdateRecipe;
731
732 // Token: 0x04001D94 RID: 7572
733 public bool showInvBG;
734
735 // Token: 0x04001D95 RID: 7573
736 public bool useGrid;
737
738 // Token: 0x04001D96 RID: 7574
739 public bool rightScroll;
740
741 // Token: 0x04001D97 RID: 7575
742 public bool tutorial;
743
744 // Token: 0x04001D98 RID: 7576
745 public bool advancedMenu;
746
747 // Token: 0x04001D99 RID: 7577
748 public bool warnCrime;
749
750 // Token: 0x04001D9A RID: 7578
751 public bool warnMana;
752
753 // Token: 0x04001D9B RID: 7579
754 public bool warnDisassemble;
755
756 // Token: 0x04001D9C RID: 7580
757 public bool hideWeapons;
758
759 // Token: 0x04001D9D RID: 7581
760 public bool backupOnSave;
761
762 // Token: 0x04001D9E RID: 7582
763 public bool backupOnFirstSave;
764
765 // Token: 0x04001D9F RID: 7583
766 public bool disableAutoStairs;
767
768 // Token: 0x04001DA0 RID: 7584
769 public bool smoothPick;
770
771 // Token: 0x04001DA1 RID: 7585
772 public bool markStack;
773
774 // Token: 0x04001DA2 RID: 7586
775 public bool waitOnRange;
776
777 // Token: 0x04001DA3 RID: 7587
778 public bool waitOnDebuff;
779
780 // Token: 0x04001DA4 RID: 7588
781 public bool waitOnMelee;
782
783 // Token: 0x04001DA5 RID: 7589
784 public bool highlightEnemy;
785
786 // Token: 0x04001DA6 RID: 7590
787 public bool showShippingResult;
788
789 // Token: 0x04001DA7 RID: 7591
790 public bool shiftToUseNegativeAbilityOnSelf;
791
792 // Token: 0x04001DA8 RID: 7592
793 [JsonIgnore]
794 [NonSerialized]
795 public bool ignoreWarnCrime;
796
797 // Token: 0x04001DA9 RID: 7593
798 [JsonIgnore]
799 [NonSerialized]
800 public bool ignoreWarnMana;
801
802 // Token: 0x04001DAA RID: 7594
803 [JsonIgnore]
804 [NonSerialized]
805 public bool ignoreWarnDisassemble;
806 }
807
808 // Token: 0x02000768 RID: 1896
809 [Serializable]
810 public class InputSetting
811 {
812 // Token: 0x04001DAB RID: 7595
813 public bool autorun;
814
815 // Token: 0x04001DAC RID: 7596
816 public bool autowalk;
817
818 // Token: 0x04001DAD RID: 7597
819 public bool altKeyAxis;
820
821 // Token: 0x04001DAE RID: 7598
822 public bool keepRunning;
823
824 // Token: 0x04001DAF RID: 7599
825 public bool rightClickExitBuildMode;
826
827 // Token: 0x04001DB0 RID: 7600
828 public bool ignoreNPCs;
829
830 // Token: 0x04001DB1 RID: 7601
831 public bool altExamine;
832
833 // Token: 0x04001DB2 RID: 7602
834 public CoreConfig.GameFunc middleClick;
835
836 // Token: 0x04001DB3 RID: 7603
837 public CoreConfig.GameFunc middlePressLong;
838
839 // Token: 0x04001DB4 RID: 7604
840 public CoreConfig.GameFunc mouse3Click;
841
842 // Token: 0x04001DB5 RID: 7605
843 public CoreConfig.GameFunc mouse3PressLong;
844
845 // Token: 0x04001DB6 RID: 7606
846 public CoreConfig.GameFunc mouse4Click;
847
848 // Token: 0x04001DB7 RID: 7607
849 public CoreConfig.GameFunc mouse4PressLong;
850
851 // Token: 0x04001DB8 RID: 7608
852 public CoreConfig.GameFuncBuild b_middleClick;
853
854 // Token: 0x04001DB9 RID: 7609
855 public CoreConfig.GameFuncBuild b_middlePressLong;
856
857 // Token: 0x04001DBA RID: 7610
858 public CoreConfig.GameFuncBuild b_mouse3Click;
859
860 // Token: 0x04001DBB RID: 7611
861 public CoreConfig.GameFuncBuild b_mouse3PressLong;
862
863 // Token: 0x04001DBC RID: 7612
864 public CoreConfig.GameFuncBuild b_mouse4Click;
865
866 // Token: 0x04001DBD RID: 7613
867 public CoreConfig.GameFuncBuild b_mouse4PressLong;
868
869 // Token: 0x04001DBE RID: 7614
870 public EInput.KeyMapManager keys;
871 }
872
873 // Token: 0x02000769 RID: 1897
874 [Serializable]
875 public class SoundSetting
876 {
877 // Token: 0x04001DBF RID: 7615
878 public float volumeMaster;
879
880 // Token: 0x04001DC0 RID: 7616
881 public float volumeBGM;
882
883 // Token: 0x04001DC1 RID: 7617
884 public float volumeSFX;
885
886 // Token: 0x04001DC2 RID: 7618
887 public float volumeAMB;
888 }
889
890 // Token: 0x0200076A RID: 1898
891 [Serializable]
892 public class GraphicSetting
893 {
894 // Token: 0x04001DC3 RID: 7619
895 public string idPostProfile;
896
897 // Token: 0x04001DC4 RID: 7620
898 public bool fullScreen;
899
900 // Token: 0x04001DC5 RID: 7621
901 public bool pixelperfectUI;
902
903 // Token: 0x04001DC6 RID: 7622
904 public bool alwaysClearCamera;
905
906 // Token: 0x04001DC7 RID: 7623
907 public bool vsync;
908
909 // Token: 0x04001DC8 RID: 7624
910 public bool kuwahara;
911
912 // Token: 0x04001DC9 RID: 7625
913 public bool drawAllyLight;
914
915 // Token: 0x04001DCA RID: 7626
916 public bool hdr;
917
918 // Token: 0x04001DCB RID: 7627
919 public bool fixedResolution;
920
921 // Token: 0x04001DCC RID: 7628
922 public bool cloud;
923
924 // Token: 0x04001DCD RID: 7629
925 public bool firefly;
926
927 // Token: 0x04001DCE RID: 7630
928 public bool bloom;
929
930 // Token: 0x04001DCF RID: 7631
931 public bool gradientWater;
932
933 // Token: 0x04001DD0 RID: 7632
934 public bool godray;
935
936 // Token: 0x04001DD1 RID: 7633
937 public bool enhanceRain;
938
939 // Token: 0x04001DD2 RID: 7634
940 public bool blizzard;
941
942 // Token: 0x04001DD3 RID: 7635
943 public bool disableShake;
944
945 // Token: 0x04001DD4 RID: 7636
946 public int fps;
947
948 // Token: 0x04001DD5 RID: 7637
949 public int fireflyCount = 150;
950
951 // Token: 0x04001DD6 RID: 7638
952 public int starCount = 200;
953
954 // Token: 0x04001DD7 RID: 7639
955 public int sharpen;
956
957 // Token: 0x04001DD8 RID: 7640
958 public int sharpen2;
959
960 // Token: 0x04001DD9 RID: 7641
961 public int blur;
962
963 // Token: 0x04001DDA RID: 7642
964 public int spriteFrameMode;
965
966 // Token: 0x04001DDB RID: 7643
967 public int w = 1280;
968
969 // Token: 0x04001DDC RID: 7644
970 public int h = 768;
971
972 // Token: 0x04001DDD RID: 7645
973 public float brightness;
974
975 // Token: 0x04001DDE RID: 7646
976 public float contrast;
977
978 // Token: 0x04001DDF RID: 7647
979 public float saturation;
980
981 // Token: 0x04001DE0 RID: 7648
982 public float vibrance;
983
984 // Token: 0x04001DE1 RID: 7649
985 public float gradientWaterLevel = 0.2f;
986 }
987
988 // Token: 0x0200076B RID: 1899
989 [Serializable]
990 public class UISetting
991 {
992 // Token: 0x170010B5 RID: 4277
993 // (get) Token: 0x06003695 RID: 13973 RVA: 0x001290A7 File Offset: 0x001272A7
994 public float ScrollSensitivity
995 {
996 get
997 {
998 return this.baseScrollSens * this.scrollSens * this.scrollSens;
999 }
1000 }
1001
1002 // Token: 0x04001DE2 RID: 7650
1003 public string defaultTheme;
1004
1005 // Token: 0x04001DE3 RID: 7651
1006 public bool openLastTab;
1007
1008 // Token: 0x04001DE4 RID: 7652
1009 public bool rightClickClose;
1010
1011 // Token: 0x04001DE5 RID: 7653
1012 public bool blur;
1013
1014 // Token: 0x04001DE6 RID: 7654
1015 public bool cornerHoard;
1016
1017 // Token: 0x04001DE7 RID: 7655
1018 public bool animeWindow;
1019
1020 // Token: 0x04001DE8 RID: 7656
1021 public bool autoscale;
1022
1023 // Token: 0x04001DE9 RID: 7657
1024 public bool dynamicBrightness;
1025
1026 // Token: 0x04001DEA RID: 7658
1027 public bool secureMinWidth;
1028
1029 // Token: 0x04001DEB RID: 7659
1030 public bool autoFocusWindow;
1031
1032 // Token: 0x04001DEC RID: 7660
1033 public bool showFloatButtons;
1034
1035 // Token: 0x04001DED RID: 7661
1036 public bool balloonBG;
1037
1038 // Token: 0x04001DEE RID: 7662
1039 public float scrollSens;
1040
1041 // Token: 0x04001DEF RID: 7663
1042 public float baseScrollSens;
1043
1044 // Token: 0x04001DF0 RID: 7664
1045 public float blurSize;
1046
1047 // Token: 0x04001DF1 RID: 7665
1048 public float dynamicBrightnessMod;
1049
1050 // Token: 0x04001DF2 RID: 7666
1051 public int mouseDragMargin;
1052
1053 // Token: 0x04001DF3 RID: 7667
1054 public int scale;
1055
1056 // Token: 0x04001DF4 RID: 7668
1057 public int brightness;
1058
1059 // Token: 0x04001DF5 RID: 7669
1060 public int contrast;
1061
1062 // Token: 0x04001DF6 RID: 7670
1063 public int outlineAlpha;
1064 }
1065
1066 // Token: 0x0200076C RID: 1900
1067 [Serializable]
1068 public class FontSetting
1069 {
1070 // Token: 0x04001DF7 RID: 7671
1071 public SkinManager.FontSaveData fontUI;
1072
1073 // Token: 0x04001DF8 RID: 7672
1074 public SkinManager.FontSaveData fontChatbox;
1075
1076 // Token: 0x04001DF9 RID: 7673
1077 public SkinManager.FontSaveData fontBalloon;
1078
1079 // Token: 0x04001DFA RID: 7674
1080 public SkinManager.FontSaveData fontDialog;
1081
1082 // Token: 0x04001DFB RID: 7675
1083 public SkinManager.FontSaveData fontWidget;
1084
1085 // Token: 0x04001DFC RID: 7676
1086 public SkinManager.FontSaveData fontNews;
1087 }
1088
1089 // Token: 0x0200076D RID: 1901
1090 [Serializable]
1091 public class CustomFont
1092 {
1093 // Token: 0x04001DFD RID: 7677
1094 public string id;
1095
1096 // Token: 0x04001DFE RID: 7678
1097 public string name;
1098 }
1099
1100 // Token: 0x0200076E RID: 1902
1101 [Serializable]
1102 public class NetSetting
1103 {
1104 // Token: 0x04001DFF RID: 7679
1105 public bool enable;
1106
1107 // Token: 0x04001E00 RID: 7680
1108 public bool sendEvent;
1109
1110 // Token: 0x04001E01 RID: 7681
1111 public bool receiveRealtime;
1112
1113 // Token: 0x04001E02 RID: 7682
1114 public bool password;
1115 }
1116
1117 // Token: 0x0200076F RID: 1903
1118 [Serializable]
1120 {
1121 // Token: 0x170010B6 RID: 4278
1122 // (get) Token: 0x0600369A RID: 13978 RVA: 0x001290DD File Offset: 0x001272DD
1123 public bool FilterAll
1124 {
1125 get
1126 {
1127 return this.filter == 2;
1128 }
1129 }
1130
1131 // Token: 0x170010B7 RID: 4279
1132 // (get) Token: 0x0600369B RID: 13979 RVA: 0x001290E8 File Offset: 0x001272E8
1133 public bool FilterLang
1134 {
1135 get
1136 {
1137 return this.filter == 1;
1138 }
1139 }
1140
1141 // Token: 0x170010B8 RID: 4280
1142 // (get) Token: 0x0600369C RID: 13980 RVA: 0x001290F3 File Offset: 0x001272F3
1143 public bool FilterNone
1144 {
1145 get
1146 {
1147 return this.filter == 0;
1148 }
1149 }
1150
1151 // Token: 0x0600369D RID: 13981 RVA: 0x001290FE File Offset: 0x001272FE
1152 public bool Show(int id)
1153 {
1154 return this.Show(EClass.sources.backers.map.TryGetValue(id, null));
1155 }
1156
1157 // Token: 0x0600369E RID: 13982 RVA: 0x0012911C File Offset: 0x0012731C
1158 public bool Show(SourceBacker.Row row)
1159 {
1160 if (row == null)
1161 {
1162 return false;
1163 }
1164 if (this.FilterNone)
1165 {
1166 return true;
1167 }
1168 if (this.FilterAll)
1169 {
1170 return false;
1171 }
1172 bool flag = row.lang == "JP" || row.lang == "CN";
1173 string langCode = Lang.langCode;
1174 if (langCode == "JP" || langCode == "CN")
1175 {
1176 return flag;
1177 }
1178 return !flag;
1179 }
1180
1181 // Token: 0x0600369F RID: 13983 RVA: 0x00129190 File Offset: 0x00127390
1182 public bool Show(string s)
1183 {
1184 if (this.FilterNone)
1185 {
1186 return true;
1187 }
1188 if (this.FilterAll)
1189 {
1190 return false;
1191 }
1192 bool flag = this.IsJapanese(s);
1193 string langCode = Lang.langCode;
1194 if (langCode == "JP" || langCode == "CN")
1195 {
1196 return flag;
1197 }
1198 return !flag;
1199 }
1200
1201 // Token: 0x060036A0 RID: 13984 RVA: 0x001291DF File Offset: 0x001273DF
1202 private bool IsJapanese(string text)
1203 {
1204 return Regex.IsMatch(text, "[\\p{IsHiragana}\\p{IsKatakana}\\p{IsCJKUnifiedIdeographs}]+");
1205 }
1206
1207 // Token: 0x04001E03 RID: 7683
1208 public int filter;
1209 }
1210
1211 // Token: 0x02000770 RID: 1904
1212 [Serializable]
1213 public class OtherSetting
1214 {
1215 // Token: 0x04001E04 RID: 7684
1216 public int antiMissClick = 2;
1217
1218 // Token: 0x04001E05 RID: 7685
1219 public float bgmInterval = 1f;
1220
1221 // Token: 0x04001E06 RID: 7686
1222 public bool noCensor;
1223
1224 // Token: 0x04001E07 RID: 7687
1225 public bool runBackground;
1226
1227 // Token: 0x04001E08 RID: 7688
1228 public bool showTestOptions;
1229
1230 // Token: 0x04001E09 RID: 7689
1231 public bool syncMods;
1232
1233 // Token: 0x04001E0A RID: 7690
1234 public string idMainWidgetTheme;
1235
1236 // Token: 0x04001E0B RID: 7691
1237 public string idSubWidgetTheme;
1238 }
1239
1240 // Token: 0x02000771 RID: 1905
1241 [Serializable]
1242 public class Test
1243 {
1244 // Token: 0x04001E0C RID: 7692
1245 public int idSkin;
1246
1247 // Token: 0x04001E0D RID: 7693
1248 public int animeFramePCC;
1249
1250 // Token: 0x04001E0E RID: 7694
1251 public int animeFrame;
1252
1253 // Token: 0x04001E0F RID: 7695
1254 public bool showNumbers;
1255
1256 // Token: 0x04001E10 RID: 7696
1257 public bool aaPortrait;
1258
1259 // Token: 0x04001E11 RID: 7697
1260 public bool extraTurnaround;
1261
1262 // Token: 0x04001E12 RID: 7698
1263 public bool bloom2;
1264
1265 // Token: 0x04001E13 RID: 7699
1266 public bool extraRace;
1267
1268 // Token: 0x04001E14 RID: 7700
1269 public bool unsealWidgets;
1270
1271 // Token: 0x04001E15 RID: 7701
1272 public bool extraMoveCancel;
1273
1274 // Token: 0x04001E16 RID: 7702
1275 public bool showNetError;
1276
1277 // Token: 0x04001E17 RID: 7703
1278 public bool alwaysRun;
1279
1280 // Token: 0x04001E18 RID: 7704
1281 public bool allowBlockOnItem;
1282
1283 // Token: 0x04001E19 RID: 7705
1284 public bool alwaysFixCamera;
1285
1286 // Token: 0x04001E1A RID: 7706
1287 public bool ignoreBackerDestoryFlag;
1288
1289 // Token: 0x04001E1B RID: 7707
1290 public bool showRefIcon;
1291
1292 // Token: 0x04001E1C RID: 7708
1293 public bool showTrait;
1294
1295 // Token: 0x04001E1D RID: 7709
1296 public float brightnessNight;
1297 }
1298
1299 // Token: 0x02000772 RID: 1906
1300 [Serializable]
1301 public class Fix
1302 {
1303 // Token: 0x04001E1E RID: 7710
1304 public CameraSupport.Divider divider;
1305
1306 // Token: 0x04001E1F RID: 7711
1307 public CoreConfig.ScreenSnapType snapType;
1308 }
1309}