about summary refs log tree commit diff
path: root/src/game
diff options
context:
space:
mode:
authorJakob Fries <jakob.fries@gmail.com>2007-08-04 16:49:57 +0000
committerJakob Fries <jakob.fries@gmail.com>2007-08-04 16:49:57 +0000
commit9f35dfa5db968b8b3e4781fd653df8d5295fffa9 (patch)
tree728ac886ac9c2e6e09ae8c3c1d9f1f92256e955e /src/game
parent04ab18c37c3d34ec7f81367017c227584f14f8d9 (diff)
downloadzcatch-9f35dfa5db968b8b3e4781fd653df8d5295fffa9.tar.gz
zcatch-9f35dfa5db968b8b3e4781fd653df8d5295fffa9.zip
added switch and noammo sounds. ingame chat works more intuitively (sp?)
Diffstat (limited to 'src/game')
-rw-r--r--src/game/client/game_client.cpp17
-rw-r--r--src/game/server/game_server.cpp12
2 files changed, 19 insertions, 10 deletions
diff --git a/src/game/client/game_client.cpp b/src/game/client/game_client.cpp
index 344aaf55..57618202 100644
--- a/src/game/client/game_client.cpp
+++ b/src/game/client/game_client.cpp
@@ -1202,7 +1202,10 @@ void modc_render()
 
 	if (inp_key_down(input::esc))
 	{
-		menu_active = !menu_active;
+		if (chat_active)
+			chat_active = false;
+		else
+			menu_active = !menu_active;
 	}
 	
 	if (!menu_active)
@@ -1556,12 +1559,6 @@ void modc_render()
 			y += 44;
 		}
 	}
-
-	if (menu_active)
-	{
-		ingamemenu_render();
-		return;
-	}
 	
 	// render chat
 	{
@@ -1592,6 +1589,12 @@ void modc_render()
 		}
 	}
 	
+	if (menu_active)
+	{
+		ingamemenu_render();
+		return;
+	}
+
 	// render goals
 	if(gameobj)
 	{
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp
index 17604794..ecbc7663 100644
--- a/src/game/server/game_server.cpp
+++ b/src/game/server/game_server.cpp
@@ -877,7 +877,13 @@ int player::handle_weapons()
 	// switch weapon if wanted		
 	if(input.activeweapon >= 0 && input.activeweapon < NUM_WEAPONS && weapons[input.activeweapon].got && 
 		data->weapons[active_weapon].duration <= 0)
+	{
+		if (active_weapon != input.activeweapon)
+			create_sound(pos, SOUND_WEAPON_SWITCH);
+
 		active_weapon = input.activeweapon;
+		
+	}
 
 	if(!previnput.fire && input.fire)
 	{
@@ -917,6 +923,7 @@ int player::handle_weapons()
 					case WEAPON_SHOTGUN:
 					{
 						int shotspread = min(2, weapons[active_weapon].ammo);
+						weapons[active_weapon].ammo -= shotspread - 1; // one will be taken later
 						for(int i = -shotspread; i <= shotspread; i++)
 						{
 							float a = get_angle(direction);
@@ -942,14 +949,13 @@ int player::handle_weapons()
 						break;						
 				}
 				
-				weapons[active_weapon].ammo -= max(1, weapons[active_weapon].ammocost);
+				weapons[active_weapon].ammo--;
 				attack_tick = server_tick();
 				reload_timer = data->weapons[active_weapon].firedelay * server_tickspeed() / 1000;
 			}
 			else
 			{
-				// click!!! click
-				// TODO: make sound here
+				create_sound(pos, SOUND_WEAPON_NOAMMO);
 			}
 		}
 	}