about summary refs log tree commit diff
path: root/src/game/client
diff options
context:
space:
mode:
authorJakob Fries <jakob.fries@gmail.com>2007-08-09 00:18:11 +0000
committerJakob Fries <jakob.fries@gmail.com>2007-08-09 00:18:11 +0000
commitd5e3c556bf1812c89dea13a5924e619dd2b8ccef (patch)
treeebce2f13931d905a656eb0d4ccc470ac87f4fdb8 /src/game/client
parent204a66b6105aae0a40293464c76076f2b188ff45 (diff)
downloadzcatch-d5e3c556bf1812c89dea13a5924e619dd2b8ccef.tar.gz
zcatch-d5e3c556bf1812c89dea13a5924e619dd2b8ccef.zip
emotes
Diffstat (limited to 'src/game/client')
-rw-r--r--src/game/client/game_client.cpp32
1 files changed, 24 insertions, 8 deletions
diff --git a/src/game/client/game_client.cpp b/src/game/client/game_client.cpp
index 487ec73d..38515b7f 100644
--- a/src/game/client/game_client.cpp
+++ b/src/game/client/game_client.cpp
@@ -790,7 +790,7 @@ static void anim_eval_add(animstate *state, animation *anim, float time, float a
 	anim_add(state, &add, amount);
 }
 
-static void render_tee(animstate *anim, int skin, vec2 dir, vec2 pos)
+static void render_tee(animstate *anim, int skin, int emote, vec2 dir, vec2 pos)
 {
 	vec2 direction =  dir;
 	vec2 position = pos;
@@ -819,10 +819,26 @@ static void render_tee(animstate *anim, int skin, vec2 dir, vec2 pos)
 				// draw eyes
 				if(p == 1)
 				{
-					// normal
-					select_sprite(SPRITE_TEE_EYE_NORMAL, 0, 0, shift*4);
+					switch (emote)
+					{
+						case EMOTE_PAIN:
+							select_sprite(SPRITE_TEE_EYE_PAIN, 0, 0, shift*4);
+							break;
+						case EMOTE_HAPPY:
+							select_sprite(SPRITE_TEE_EYE_HAPPY, 0, 0, shift*4);
+							break;
+						case EMOTE_SURPRISE:
+							select_sprite(SPRITE_TEE_EYE_SURPRISE, 0, 0, shift*4);
+							break;
+						case EMOTE_ANGRY:
+							select_sprite(SPRITE_TEE_EYE_ANGRY, 0, 0, shift*4);
+							break;
+						default:
+							select_sprite(SPRITE_TEE_EYE_NORMAL, 0, 0, shift*4);
+							break;
+					}
 					gfx_quads_draw(position.x-4+direction.x*4, position.y-8+direction.y*3, basesize, basesize);
-					gfx_quads_draw(position.x+4+direction.x*4, position.y-8+direction.y*3, basesize, basesize);
+					gfx_quads_draw(position.x+4+direction.x*4, position.y-8+direction.y*3, -basesize, basesize);
 				}
 			}
 
@@ -1078,7 +1094,7 @@ static void render_player(const obj_player *prev, const obj_player *player)
 
 	// render the tee
 	int skin = gametype == GAMETYPE_TDM ? skinseed + player->team : player->clientid;
-	render_tee(&state, skin, direction, position);
+	render_tee(&state, skin, player->emote, direction, position);
 
 	if(player->state == STATE_CHATTING)
 	{
@@ -1552,7 +1568,7 @@ void render_game()
 			// render victim tee
 			x -= 24.0f;
 			int skin = gametype == GAMETYPE_TDM ? skinseed + client_datas[killmsgs[r].victim].team : killmsgs[r].victim;
-			render_tee(&idlestate, skin, vec2(1,0), vec2(x, y+28));
+			render_tee(&idlestate, skin, EMOTE_NORMAL, vec2(1,0), vec2(x, y+28));
 			x -= 32.0f;
 
 			// render weapon
@@ -1570,7 +1586,7 @@ void render_game()
 			// render killer tee
 			x -= 24.0f;
 			skin = gametype == GAMETYPE_TDM ? skinseed + client_datas[killmsgs[r].killer].team : killmsgs[r].killer;
-			render_tee(&idlestate, skin, vec2(1,0), vec2(x, y+28));
+			render_tee(&idlestate, skin, EMOTE_NORMAL, vec2(1,0), vec2(x, y+28));
 			x -= 32.0f;
 			
 			// render killer name
@@ -1746,7 +1762,7 @@ void render_game()
 				gfx_pretty_text(x+w-tw-35, y, font_size, buf);
 
 				// render avatar
-				render_tee(&idlestate, player->clientid, vec2(1,0), vec2(x+90, y+28));
+				render_tee(&idlestate, player->clientid, EMOTE_NORMAL, vec2(1,0), vec2(x+90, y+28));
 				y += 50.0f;
 			}