about summary refs log tree commit diff
path: root/src/game/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/client')
-rw-r--r--src/game/client/game_client.cpp4
-rw-r--r--src/game/client/menu2.cpp54
2 files changed, 46 insertions, 12 deletions
diff --git a/src/game/client/game_client.cpp b/src/game/client/game_client.cpp
index d9c2ba53..4d81c344 100644
--- a/src/game/client/game_client.cpp
+++ b/src/game/client/game_client.cpp
@@ -40,7 +40,7 @@ enum
 };
 
 static int chat_mode = CHATMODE_NONE;
-static bool menu_active = false;
+bool menu_active = false;
 static bool emoticon_selector_active = false;
 
 static vec2 mouse_pos;
@@ -48,7 +48,7 @@ static vec2 local_character_pos;
 static vec2 local_target_pos;
 static const obj_player_character *local_character = 0;
 static const obj_player_character *local_prev_character = 0;
-static const obj_player_info *local_info = 0;
+const obj_player_info *local_info = 0;
 static const obj_game *gameobj = 0;
 
 static struct client_data
diff --git a/src/game/client/menu2.cpp b/src/game/client/menu2.cpp
index 53d80235..d6014b87 100644
--- a/src/game/client/menu2.cpp
+++ b/src/game/client/menu2.cpp
@@ -27,6 +27,11 @@ extern "C" {
 
 extern data_container *data;
 
+// abit uglyness
+extern const obj_player_info *local_info;
+extern bool menu_active;
+
+
 //static vec4 gui_color(0.9f,0.78f,0.65f, 0.5f);
 //static vec4 gui_color(0.78f,0.9f,0.65f, 0.5f);
 static vec4 gui_color(0.65f,0.78f,0.9f, 0.5f);
@@ -1375,17 +1380,46 @@ static void menu2_render_game(RECT main_view)
 	if(ui2_do_button(&disconnect_button, "Disconnect", 0, &button, ui2_draw_menu_button, 0))
 		client_disconnect();
 
-	ui2_vsplit_l(&main_view, 120.0f, &button, &main_view);
-	static int spectate_button = 0;
-	if(ui2_do_button(&spectate_button, "Spectate", 0, &button, ui2_draw_menu_button, 0))
-		;
-		
-	ui2_vsplit_l(&main_view, 10.0f, &button, &main_view);
-	ui2_vsplit_l(&main_view, 120.0f, &button, &main_view);
-	static int change_team_button = 0;
-	if(ui2_do_button(&change_team_button, "Change Team", 0, &button, ui2_draw_menu_button, 0))
-		;
 
+
+	if(local_info)
+	{
+		if(local_info->team != -1)
+		{
+			ui2_vsplit_l(&main_view, 10.0f, &button, &main_view);
+			ui2_vsplit_l(&main_view, 120.0f, &button, &main_view);
+			static int spectate_button = 0;
+			if(ui2_do_button(&spectate_button, "Spectate", 0, &button, ui2_draw_menu_button, 0))
+			{
+				config.team = -1;
+				menu_active = false;
+			}
+		}
+
+		if(local_info->team != 0)
+		{
+			ui2_vsplit_l(&main_view, 10.0f, &button, &main_view);
+			ui2_vsplit_l(&main_view, 120.0f, &button, &main_view);
+			static int spectate_button = 0;
+			if(ui2_do_button(&spectate_button, "Join Red", 0, &button, ui2_draw_menu_button, 0))
+			{
+				config.team = 0;
+				menu_active = false;
+			}
+		}
+
+		if(local_info->team != 1)
+		{
+			ui2_vsplit_l(&main_view, 10.0f, &button, &main_view);
+			ui2_vsplit_l(&main_view, 120.0f, &button, &main_view);
+			static int spectate_button = 0;
+			if(ui2_do_button(&spectate_button, "Join Blue", 0, &button, ui2_draw_menu_button, 0))
+			{
+				config.team = 1;
+				menu_active = false;
+			}
+		}
+	}
 }
 
 int menu2_render()