about summary refs log tree commit diff
path: root/src/game
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-19 20:30:09 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-19 20:30:09 +0000
commit8ea39f85bb632a7689d4be3489607959cdb6ea2a (patch)
tree1bd7398c51fffcc1b9de85bb07917e0121bd5149 /src/game
parent72cb74bf7f3491ffe92bbb98bd2f755f6ac40b1a (diff)
downloadzcatch-8ea39f85bb632a7689d4be3489607959cdb6ea2a.tar.gz
zcatch-8ea39f85bb632a7689d4be3489607959cdb6ea2a.zip
fixed restart warning
Diffstat (limited to 'src/game')
-rw-r--r--src/game/client/gc_menu.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/game/client/gc_menu.cpp b/src/game/client/gc_menu.cpp
index e56077ef..2319c04b 100644
--- a/src/game/client/gc_menu.cpp
+++ b/src/game/client/gc_menu.cpp
@@ -35,6 +35,8 @@ extern const obj_game *gameobj;
 extern bool menu_active;
 extern bool menu_game_active;
 
+static bool need_restart = false;
+
 enum
 {
 	POPUP_NONE=0,
@@ -1530,6 +1532,8 @@ static void menu2_render_settings_graphics(RECT main_view)
 			config.gfx_color_depth = depth;
 			config.gfx_screen_width = modes[i].width;
 			config.gfx_screen_height = modes[i].height;
+			if(!selected)
+				need_restart = true;
 		}
 		
 		ui2_hsplit_t(&list, 20, &button, &list);
@@ -1539,7 +1543,10 @@ static void menu2_render_settings_graphics(RECT main_view)
 	// switches
 	ui2_hsplit_t(&main_view, 20.0f, &button, &main_view);
 	if (ui2_do_button(&config.gfx_fullscreen, "Fullscreen", config.gfx_fullscreen, &button, ui2_draw_checkbox, 0))
+	{
 		config.gfx_fullscreen ^= 1;
+		need_restart = true;
+	}
 
 	ui2_hsplit_t(&main_view, 20.0f, &button, &main_view);
 	if (ui2_do_button(&config.gfx_vsync, "V-Sync", config.gfx_vsync, &button, ui2_draw_checkbox, 0))
@@ -1554,16 +1561,23 @@ static void menu2_render_settings_graphics(RECT main_view)
 		else if(config.gfx_fsaa_samples < 8) config.gfx_fsaa_samples = 8;
 		else if(config.gfx_fsaa_samples < 16) config.gfx_fsaa_samples = 16;
 		else if(config.gfx_fsaa_samples >= 16) config.gfx_fsaa_samples = 0;
+		need_restart = true;
 	}
 		
 	ui2_hsplit_t(&main_view, 40.0f, &button, &main_view);
 	ui2_hsplit_t(&main_view, 20.0f, &button, &main_view);
 	if (ui2_do_button(&config.gfx_texture_quality, "Quality Textures", config.gfx_texture_quality, &button, ui2_draw_checkbox, 0))
+	{
 		config.gfx_texture_quality ^= 1;
+		need_restart = true;
+	}
 
 	ui2_hsplit_t(&main_view, 20.0f, &button, &main_view);
 	if (ui2_do_button(&config.gfx_texture_compression, "Texture Compression", config.gfx_texture_compression, &button, ui2_draw_checkbox, 0))
+	{
 		config.gfx_texture_compression ^= 1;
+		need_restart = true;
+	}
 
 	ui2_hsplit_t(&main_view, 20.0f, &button, &main_view);
 	if (ui2_do_button(&config.gfx_high_detail, "High Detail", config.gfx_high_detail, &button, ui2_draw_checkbox, 0))
@@ -1602,7 +1616,10 @@ static void menu2_render_settings_sound(RECT main_view)
 	
 	ui2_hsplit_t(&main_view, 20.0f, &button, &main_view);
 	if (ui2_do_button(&config.snd_enable, "Use Sounds", config.snd_enable, &button, ui2_draw_checkbox, 0))
+	{
 		config.snd_enable ^= 1;
+		need_restart = true;
+	}
 	
 	if(!config.snd_enable)
 		return;
@@ -1616,7 +1633,11 @@ static void menu2_render_settings_sound(RECT main_view)
 		ui2_vsplit_l(&button, 110.0f, 0, &button);
 		ui2_vsplit_l(&button, 180.0f, &button, 0);
 		ui2_do_edit_box(&config.snd_rate, &button, buf, sizeof(buf));
+		int before = config.snd_rate;
 		config.snd_rate = atoi(buf);
+		
+		if(config.snd_rate != before)
+			need_restart = true;
 
 		if(config.snd_rate < 1)
 			config.snd_rate = 1;
@@ -1688,6 +1709,13 @@ static void menu2_render_settings(RECT main_view)
 		menu2_render_settings_graphics(main_view);
 	else if(settings_page == 4)
 		menu2_render_settings_sound(main_view);
+
+	if(need_restart)
+	{
+		RECT restart_warning;
+		ui2_hsplit_b(&main_view, 40, &main_view, &restart_warning);
+		ui2_do_label(&restart_warning, "You must restart Teewars for all settings to take effect.", 20, -1, 220);
+	}
 }
 
 static void menu2_render_news(RECT main_view)