@@ -40,6 +40,7 @@ protected override CreateParams CreateParams
4040
4141 List < Mod > mods = new List < Mod > ( ) ;
4242 bool bFullyLoaded = false ;
43+ Settings settings = new Settings ( ) ;
4344
4445 public MainForm ( )
4546 {
@@ -68,18 +69,19 @@ private void move_MouseDown(object sender, MouseEventArgs e)
6869
6970 public static bool isModDirectory ( string path )
7071 {
71- string [ ] ignoredirs = {
72- "3dsmax2.5" ,
73- "3dsmax3" ,
74- "bin" ,
75- "logos" ,
76- "media" ,
77- "pak" ,
78- "Photoshop 5.5" ,
79- "platform" ,
80- "src_main" ,
81- "XSI" ,
82- } ;
72+ string [ ] ignoredirs =
73+ {
74+ "3dsmax2.5" ,
75+ "3dsmax3" ,
76+ "bin" ,
77+ "logos" ,
78+ "media" ,
79+ "pak" ,
80+ "Photoshop 5.5" ,
81+ "platform" ,
82+ "src_main" ,
83+ "XSI" ,
84+ } ;
8385 string shortDir = path . Substring ( path . LastIndexOf ( '\\ ' ) + 1 ) ;
8486 foreach ( string dir in ignoredirs )
8587 {
@@ -93,17 +95,24 @@ public static bool isModDirectory(string path)
9395 // return false;
9496 // }
9597
96- string [ ] possibleDirs = {
97- "cfg" ,
98- "maps" ,
99- "materials" ,
100- "models" ,
101- "resource" ,
102- "SAVE" ,
103- "scenes" ,
104- "scripts" ,
105- "sound" ,
106- } ;
98+ string [ ] possibleDirs =
99+ {
100+ "bin" ,
101+ "cfg" ,
102+ "maps" ,
103+ "mapsrc" ,
104+ "materials" ,
105+ "materialsrc" ,
106+ "models" ,
107+ "modelsrc" ,
108+ "resource" ,
109+ "SAVE" ,
110+ "scenes" ,
111+ "screenshots" ,
112+ "scripts" ,
113+ "sound" ,
114+ "testscripts" ,
115+ } ;
107116
108117 int count = 0 ;
109118 foreach ( string dir in possibleDirs )
@@ -244,10 +253,23 @@ public void RefreshModList()
244253
245254 Console . WriteLine ( "Game: " + gamename ) ;
246255
247- Mod mod = new Mod {
248- Dir = ddir ,
249- Name = ( ( gamename != "" ) ? gamename : ddir )
250- } ;
256+ Mod mod = new Mod
257+ {
258+ Dir = ddir ,
259+ Name = ( ( gamename != "" ) ? gamename : ddir )
260+ } ;
261+
262+ List < Mod > test = settings . GetMods ( ) ;
263+ foreach ( Mod storedMod in test )
264+ {
265+ if ( storedMod . Dir == ddir ) // Restoring parameters for mod
266+ {
267+ mod . Parameters = storedMod . Parameters ;
268+ mod . ServerParameters = storedMod . ServerParameters ;
269+ }
270+ }
271+
272+ Console . WriteLine ( string . Format ( "{0}, {1}, {2}" , mod . Dir , mod . Name , mod . Parameters ) ) ;
251273 mods . Add ( mod ) ;
252274 }
253275 }
@@ -293,17 +315,31 @@ private void MainForm_Load(object sender, EventArgs e)
293315
294316 private void SaveAdditionalParameters ( )
295317 {
296- setRegistryValue ( "GameParameters" , gameParametersText . Text ) ; // TODO: Do a separate parameters for every mod
297- setRegistryValue ( "ServerParameters" , srvParametersText . Text ) ;
318+ // setRegistryValue("GameParameters", gameParametersText.Text); // TODO: Do a separate parameters for every mod
319+ // setRegistryValue("ServerParameters", srvParametersText.Text);
320+
321+ // mods[modList.SelectedIndex].Parameters = gameParametersText.Text;
322+ // mods[modList.SelectedIndex].ServerParameters = srvParametersText.Text;
323+
324+ // Write to file
325+ bool successfulSave = settings . WriteSettings ( mods ) ;
326+ if ( ! successfulSave )
327+ MessageBox . Show ( "Mod parameters cannot be saved!" , "Error!" , MessageBoxButtons . OK , MessageBoxIcon . Exclamation ) ;
328+
329+ // gameParametersText.Text = mods[modList.SelectedIndex].Parameters;
330+ // srvParametersText.Text = mods[modList.SelectedIndex].ServerParameters;
298331 }
299332
300333 // private bool isExtended = false;
301334 private void MainForm_Shown ( object sender , EventArgs e )
302335 {
303336 // this.Height = 140;
304337
305- gameParametersText . Text = getRegistryValue ( getRegistryMainPath ( ) , "GameParameters" ) ;
306- srvParametersText . Text = getRegistryValue ( getRegistryMainPath ( ) , "ServerParameters" ) ;
338+ // gameParametersText.Text = getRegistryValue(getRegistryMainPath(), "GameParameters");
339+ // srvParametersText.Text = getRegistryValue(getRegistryMainPath(), "ServerParameters");
340+
341+ gameParametersText . Text = mods [ modList . SelectedIndex ] . Parameters ;
342+ srvParametersText . Text = mods [ modList . SelectedIndex ] . ServerParameters ;
307343 }
308344
309345 /*
@@ -334,12 +370,14 @@ private void additionalParamsBut_Click(object sender, EventArgs e)
334370
335371 private void parametersText_Leave ( object sender , EventArgs e )
336372 {
373+ // mods[modList.SelectedIndex].Parameters = gameParametersText.Text;
337374 // Saving parameters into registry
338375 SaveAdditionalParameters ( ) ;
339376 }
340377
341378 private void srvParametersText_Leave ( object sender , EventArgs e )
342379 {
380+ // mods[modList.SelectedIndex].ServerParameters = srvParametersText.Text;
343381 // Saving parameters into registry
344382 SaveAdditionalParameters ( ) ;
345383 }
@@ -464,7 +502,7 @@ private void btnRefresh_Click(object sender, EventArgs e)
464502 RefreshModList ( ) ;
465503 }
466504
467- private void modList_TextChanged ( object sender , EventArgs e )
505+ private void modList_SelectedIndexChanged ( object sender , EventArgs e )
468506 {
469507 if ( ! bFullyLoaded )
470508 return ;
@@ -474,7 +512,20 @@ private void modList_TextChanged(object sender, EventArgs e)
474512 setRegistryValue ( "LNGameMod" , choosedMod ) ;
475513
476514 // Saving parameters into registry
477- SaveAdditionalParameters ( ) ;
515+ // SaveAdditionalParameters();
516+
517+ gameParametersText . Text = mods [ modList . SelectedIndex ] . Parameters ;
518+ srvParametersText . Text = mods [ modList . SelectedIndex ] . ServerParameters ;
519+ }
520+
521+ private void gameParametersText_TextChanged ( object sender , EventArgs e )
522+ {
523+ mods [ modList . SelectedIndex ] . Parameters = gameParametersText . Text ;
524+ }
525+
526+ private void srvParametersText_TextChanged ( object sender , EventArgs e )
527+ {
528+ mods [ modList . SelectedIndex ] . ServerParameters = srvParametersText . Text ;
478529 }
479530 }
480531}
0 commit comments