about summary refs log tree commit diff
path: root/src/game
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-07-29 15:55:04 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-07-29 15:55:04 +0000
commit7699e4b400fef04e9353302b8fd253bf7b2c8cc2 (patch)
tree25d00d4faf78c6c099505ad9f990b3c57d37064a /src/game
parentb1f65c46ed9b055cf1ecf94b5a8ff80eebe94ac9 (diff)
downloadzcatch-7699e4b400fef04e9353302b8fd253bf7b2c8cc2.tar.gz
zcatch-7699e4b400fef04e9353302b8fd253bf7b2c8cc2.zip
removed the batch functions as it did next to nothing. changed some of the default values. cleaned up some of the config variables. added options in the menu to control gfx quality of the game.
Diffstat (limited to 'src/game')
-rw-r--r--src/game/client/mapres_tilemap.cpp110
-rw-r--r--src/game/client/menu.cpp50
2 files changed, 77 insertions, 83 deletions
diff --git a/src/game/client/mapres_tilemap.cpp b/src/game/client/mapres_tilemap.cpp
index 6f61e656..032238bf 100644
--- a/src/game/client/mapres_tilemap.cpp
+++ b/src/game/client/mapres_tilemap.cpp
@@ -6,16 +6,8 @@
 
 #include <baselib/opengl.h>
 
-void *batches[32] = {0};
-
 int tilemap_init()
 {
-	for(int i = 0; i < 32; i++)
-		if(batches[i])
-		{
-			gfx_destoy_batch(batches[i]);
-			batches[i] = 0;
-		}
 	return 0;
 }
 
@@ -47,69 +39,57 @@ void tilemap_render(float scale, int fg)
 				continue;
 			gfx_texture_set(img_get(tmap->image));
 			
-			if(!batches[t])
-			{
-				gfx_quads_begin();
-				
-				int starty = (int)(screen_y0/scale)-1;
-				int startx = (int)(screen_x0/scale)-1;
-				int endy = (int)(screen_y1/scale)+1;
-				int endx = (int)(screen_x1/scale)+1;
-				
-				float frac = (1.0f/1024.0f);//2.0f; //2.0f;
-				float texsize = 1024.0f;
-				float nudge = 0.5f/texsize;
-				int border = 24;
-				for(int y = starty; y < endy; y++)
-					for(int x = startx; x < endx; x++)
+			gfx_quads_begin();
+			
+			int starty = (int)(screen_y0/scale)-1;
+			int startx = (int)(screen_x0/scale)-1;
+			int endy = (int)(screen_y1/scale)+1;
+			int endx = (int)(screen_x1/scale)+1;
+			
+			float frac = (1.0f/1024.0f);//2.0f; //2.0f;
+			float texsize = 1024.0f;
+			float nudge = 0.5f/texsize;
+			for(int y = starty; y < endy; y++)
+				for(int x = startx; x < endx; x++)
+				{
+					int mx = x;
+					int my = y;
+					if(mx<0) mx = 0;
+					if(mx>=tmap->width) mx = tmap->width-1;
+					if(my<0) my = 0;
+					if(my>=tmap->height) my = tmap->height-1;
+					
+					int c = mx + my*tmap->width;
+						
+					unsigned char d = data[c*2];
+					if(d)
 					{
-						int mx = x;
-						int my = y;
-						if(mx<0) mx = 0;
-						if(mx>=tmap->width) mx = tmap->width-1;
-						if(my<0) my = 0;
-						if(my>=tmap->height) my = tmap->height-1;
+						/*
+						gfx_quads_setsubset(
+							(d%16)/16.0f*s+frac,
+							(d/16)/16.0f*s+frac,
+							((d%16)/16.0f+1.0f/16.0f)*s-frac,
+							((d/16)/16.0f+1.0f/16.0f)*s-frac);
+							*/
 						
-						int c = mx + my*tmap->width;
-							
-						unsigned char d = data[c*2];
-						if(d)
-						{
-							/*
-							gfx_quads_setsubset(
-								(d%16)/16.0f*s+frac,
-								(d/16)/16.0f*s+frac,
-								((d%16)/16.0f+1.0f/16.0f)*s-frac,
-								((d/16)/16.0f+1.0f/16.0f)*s-frac);
-								*/
-							
-							int tx = d%16;
-							int ty = d/16;
-							int px0 = tx*(1024/16);
-							int py0 = ty*(1024/16);
-							int px1 = (tx+1)*(1024/16)-1;
-							int py1 = (ty+1)*(1024/16)-1;
+						int tx = d%16;
+						int ty = d/16;
+						int px0 = tx*(1024/16);
+						int py0 = ty*(1024/16);
+						int px1 = (tx+1)*(1024/16)-1;
+						int py1 = (ty+1)*(1024/16)-1;
 
-							gfx_quads_setsubset(
-								nudge + px0/texsize+frac,
-								nudge + py0/texsize+frac,
-								nudge + px1/texsize-frac,
-								nudge + py1/texsize-frac);
+						gfx_quads_setsubset(
+							nudge + px0/texsize+frac,
+							nudge + py0/texsize+frac,
+							nudge + px1/texsize-frac,
+							nudge + py1/texsize-frac);
 
-							gfx_quads_drawTL(x*scale, y*scale, scale, scale);
-						}
+						gfx_quads_drawTL(x*scale, y*scale, scale, scale);
 					}
-				
-				gfx_quads_end();
-				//batches[t] = gfx_quads_create_batch();
-			}
+				}
 			
-			//gfx_quads_draw_batch(batches[t]);
-			//glCallList(lists_start+t);
+			gfx_quads_end();
 		}
 	}
-	
-	//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
-	
 }
diff --git a/src/game/client/menu.cpp b/src/game/client/menu.cpp
index 06b65e62..1f9857a8 100644
--- a/src/game/client/menu.cpp
+++ b/src/game/client/menu.cpp
@@ -424,7 +424,7 @@ int ui_do_edit_box(void *id, float x, float y, float w, float h, char *str, int
 
 		if (inside && ui_mouse_button(0))
 		{
-			int mx_rel = ui_mouse_x() - x;
+			int mx_rel = (int)(ui_mouse_x() - x);
 
 			for (int i = 1; i <= len; i++)
 			{
@@ -727,6 +727,9 @@ const float row1_y = 180;
 const float row2_y = row1_y + 40;
 const float row3_y = row2_y + 40;
 const float row4_y = row3_y + 40;
+const float row5_y = row4_y + 40;
+const float row6_y = row5_y + 40;
+const float row7_y = row6_y + 40;
 
 static int main_render()
 {
@@ -873,9 +876,9 @@ static int settings_video_render_select_mode()
 		
 		char buf[128];
 		int s = 0;
-		if(modes[index].width == config_copy.screen_width &&
-			modes[index].height == config_copy.screen_height && 
-			depth == config_copy.color_depth)
+		if(modes[index].width == config_copy.gfx_screen_width &&
+			modes[index].height == config_copy.gfx_screen_height && 
+			depth == config_copy.gfx_color_depth)
 		{
 			s = 1;
 		}
@@ -886,9 +889,9 @@ static int settings_video_render_select_mode()
 			column1_x, row1_y + 40 * i, 320, 32.0f, draw_teewars_button))
 		{
 			// select
-			config_set_color_depth(&config_copy, depth);
-			config_set_screen_width(&config_copy, modes[index].width);
-			config_set_screen_height(&config_copy, modes[index].height);
+			config_set_gfx_color_depth(&config_copy, depth);
+			config_set_gfx_screen_width(&config_copy, modes[index].width);
+			config_set_gfx_screen_height(&config_copy, modes[index].height);
 			screen = SCREEN_SETTINGS_VIDEO;
 		}
 	}
@@ -898,23 +901,34 @@ static int settings_video_render_select_mode()
 
 static int settings_video_render()
 {
-	// we need to draw these bottom up, to make overlapping work correctly
-	ui_do_label(column1_x, row4_y + 50, "(A restart of the game is required for these settings to take effect.)", 20);
-	
-	ui_do_label(column1_x, row4_y, "V-sync:", 36);
-	config_set_vsync(&config_copy, ui_do_check_box(&config_copy.vsync, column2_x, row4_y + 5, 32, 32, config_copy.vsync));
-
-	ui_do_label(column1_x, row3_y, "Fullscreen:", 36);
-	config_set_fullscreen(&config_copy, ui_do_check_box(&config_copy.fullscreen, column2_x, row3_y + 5, 32, 32, config_copy.fullscreen));
 
-	ui_do_label(column1_x, row2_y, "Mode:", 36);
+	ui_do_label(column1_x, row1_y, "Mode:", 36);
 
 	char buf[128];
-	sprintf(buf, "%dx%d %d bit", config_copy.screen_width, config_copy.screen_height, config_copy.color_depth);
+	sprintf(buf, "%dx%d %d bit", config_copy.gfx_screen_width, config_copy.gfx_screen_height, config_copy.gfx_color_depth);
 	static int select_button = 0;
-	if(ui_do_button(&select_button, buf, 0, column2_x, row2_y, 300, 32, draw_teewars_button))
+	if(ui_do_button(&select_button, buf, 0, column2_x, row1_y, 300, 32, draw_teewars_button))
 		screen = SCREEN_SETTINGS_VIDEO_SELECT_MODE;
 		
+	// we need to draw these bottom up, to make overlapping work correctly
+	
+	ui_do_label(column1_x, row2_y, "Fullscreen:", 36);
+	config_set_gfx_fullscreen(&config_copy, ui_do_check_box(&config_copy.gfx_fullscreen, column3_x, row2_y + 5, 32, 32, config_copy.gfx_fullscreen));
+
+	ui_do_label(column1_x, row3_y, "V-sync:", 36);
+	config_set_gfx_vsync(&config_copy, ui_do_check_box(&config_copy.gfx_vsync, column3_x, row3_y + 5, 32, 32, config_copy.gfx_vsync));
+
+	ui_do_label(column1_x, row4_y, "Quality Textures:", 36);
+	config_set_gfx_texture_quality(&config_copy, ui_do_check_box(&config_copy.gfx_texture_quality, column3_x, row4_y + 5, 32, 32, config_copy.gfx_texture_quality));
+
+	ui_do_label(column1_x, row5_y, "Textures Compression:", 36);
+	config_set_gfx_texture_compression(&config_copy, ui_do_check_box(&config_copy.gfx_texture_compression, column3_x, row5_y + 5, 32, 32, config_copy.gfx_texture_compression));
+
+	ui_do_label(column1_x, row6_y, "High Detail:", 36);
+	config_set_gfx_high_detail(&config_copy, ui_do_check_box(&config_copy.gfx_high_detail, column3_x, row6_y + 5, 32, 32, config_copy.gfx_high_detail));
+
+	ui_do_label(column1_x, row6_y + 50, "(A restart of the game is required for these settings to take effect.)", 20);
+
 	return 0;
 }