1 #include "pch.h"
2 #include "../ogre/common/Def_Str.h"
3 #include "settings.h"
4 #include "../vdrift/tracksurface.h"
5 
6 
Load(std::string sfile)7 void SETTINGS::Load(std::string sfile)
8 {
9 	CONFIGFILE c;  c.Load(sfile);
10 	Serialize(false, c);
11 }
Save(std::string sfile)12 void SETTINGS::Save(std::string sfile)
13 {
14 	CONFIGFILE c;  c.Load(sfile);  version = SET_VER;
15 	Serialize(true, c);  c.Write();
16 }
17 
18 
Serialize(bool w,CONFIGFILE & c)19 void SETTINGS::Serialize(bool w, CONFIGFILE & c)
20 {
21 	c.bFltFull = false;
22 
23 	SerializeCommon(w,c);
24 
25 	//  game common
26 	Param(c,w, "game.track", gui.track);				Param(c,w, "game.track_user", gui.track_user);
27 	Param(c,w, "graph_veget.trees", gui.trees);
28 
29 
30 	Param(c,w, "hud_show.trackmap", trackmap);			Param(c,w, "hud_size.minimap", size_minimap);
31 	Param(c,w, "hud_show.mini_num", num_mini);			Param(c,w, "hud_show.brushpreview", brush_prv);
32 
33 	Param(c,w, "misc.allow_save", allow_save);
34 	Param(c,w, "misc.inputBar", inputBar);			Param(c,w, "misc.camPos", camPos);
35 	Param(c,w, "misc.version", version);
36 	Param(c,w, "misc.check_load", check_load);		Param(c,w, "misc.check_save", check_save);
37 
38 	Param(c,w, "set_cam.px",cam_x);  Param(c,w, "set_cam.py",cam_y);  Param(c,w, "set_cam.pz",cam_z);
39 	Param(c,w, "set_cam.dx",cam_dx); Param(c,w, "set_cam.dy",cam_dy); Param(c,w, "set_cam.dz",cam_dz);
40 
41 	Param(c,w, "set.fog", bFog);					Param(c,w, "set.trees", bTrees);
42 	Param(c,w, "set.weather", bWeather);
43 	Param(c,w, "set.cam_speed", cam_speed);			Param(c,w, "set.cam_inert", cam_inert);
44 	Param(c,w, "set.ter_skip", ter_skip);			Param(c,w, "set.road_sphr", road_sphr);
45 	Param(c,w, "set.mini_skip", mini_skip);
46 
47 	Param(c,w, "ter_gen.scale", gen_scale);
48 	Param(c,w, "ter_gen.ofsx", gen_ofsx);			Param(c,w, "ter_gen.ofsy", gen_ofsy);
49 	Param(c,w, "ter_gen.freq", gen_freq);			Param(c,w, "ter_gen.persist", gen_persist);
50 	Param(c,w, "ter_gen.pow", gen_pow);				Param(c,w, "ter_gen.oct", gen_oct);
51 	Param(c,w, "ter_gen.mul", gen_mul);				Param(c,w, "ter_gen.ofsh", gen_ofsh);
52 	Param(c,w, "ter_gen.roadsm", gen_roadsm);
53 	Param(c,w, "ter_gen.terMinA", gen_terMinA);		Param(c,w, "ter_gen.terMaxA",gen_terMaxA);
54 	Param(c,w, "ter_gen.terSmA", gen_terSmA);		Param(c,w, "ter_gen.terSmH",gen_terSmH);
55 	Param(c,w, "ter_gen.terMinH", gen_terMinH);		Param(c,w, "ter_gen.terMaxH",gen_terMaxH);
56 
57 	Param(c,w, "teralign.w_mul", al_w_mul);			Param(c,w, "teralign.smooth", al_smooth);
58 	Param(c,w, "teralign.w_add", al_w_add);
59 
60 	Param(c,w, "pacenotes.show", pace_show);		Param(c,w, "pacenotes.dist", pace_dist);
61 	Param(c,w, "pacenotes.size", pace_size);
62 	Param(c,w, "pacenotes.near", pace_near);		Param(c,w, "pacenotes.alpha", pace_alpha);
63 	Param(c,w, "pacenotes.trk_reverse", trk_reverse);
64 
65 	Param(c,w, "tweak.mtr", tweak_mtr);
66 	Param(c,w, "pick.set_par", pick_setpar);
67 }
68 
SETTINGS()69 SETTINGS::SETTINGS()  ///  Defaults
70 	:version(100)  // old
71 	//  show
72 	,trackmap(1), size_minimap(0.5), num_mini(0), brush_prv(1)
73 	//  misc
74 	,allow_save(0)
75 	,check_load(0), check_save(1)
76 	,inputBar(0), camPos(0)
77 	//  settings
78 	,cam_x(0), cam_y(50),cam_z(-120),  cam_dx(0), cam_dy(0), cam_dz(1)
79 	,bFog(0), bTrees(0), bWeather(0)
80 	,cam_speed(1.f), cam_inert(1.f)
81 	,ter_skip(4), road_sphr(2.f), mini_skip(4)
82 	//  ter gen
83 	,gen_scale(20.f), gen_freq(0.73f), gen_oct(4), gen_persist(0.4f)
84 	,gen_pow(1.0f), gen_ofsx(0.f), gen_ofsy(0.f)
85 	,gen_mul(1.f), gen_ofsh(0.f), gen_roadsm(0.f)
86 	,gen_terMinA(0.f),gen_terMaxA(90.f),gen_terSmA(10.f)
87 	,gen_terMinH(-300.f),gen_terMaxH(300.f),gen_terSmH(10.f)
88 	//  align ter
89 	,al_w_mul(1.f), al_w_add(8.f), al_smooth(2.f)
90 	//  pacenotes
91 	,pace_show(3), pace_dist(1000.f), pace_size(1.f)
92 	,pace_near(1.f), pace_alpha(1.f)
93 	,trk_reverse(0), show_mph(0)
94 	//  tweak
95 	,tweak_mtr("")
96 	//  pick
97 	,pick_setpar(1)
98 {
99 
100 	//  track common
101 	gui.track = "Isl6-Flooded";  gui.track_user = false;
102 	gui.trees = 1.f;
103 }
104