1cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich/*
2cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichCopyright (C) 1996-1997 Id Software, Inc.
3cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich
4cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichThis program is free software; you can redistribute it and/or
5cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichmodify it under the terms of the GNU General Public License
6cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichas published by the Free Software Foundation; either version 2
7cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichof the License, or (at your option) any later version.
8cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich
9cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichThis program is distributed in the hope that it will be useful,
10cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichbut WITHOUT ANY WARRANTY; without even the implied warranty of
11cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich
13cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichSee the GNU General Public License for more details.
14cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich
15cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichYou should have received a copy of the GNU General Public License
16cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevichalong with this program; if not, write to the Free Software
17cabb5dd768714a7df34469a096b5e1aa815a2c22Jack PalevichFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich
19cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich*/
209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// sbar.c -- status bar code
219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include "quakedef.h"
239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint			sb_updates;		// if >= vid.numpages, no update needed
269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define STAT_MINUS		10	// num frame for '-' stats digit
289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_nums[2][11];
299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_colon, *sb_slash;
309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_ibar;
319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_sbar;
329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_scorebar;
339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *sb_weapons[7][8];   // 0 is active, 1 is owned, 2-5 are flashes
359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *sb_ammo[4];
369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_sigil[4];
379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_armor[3];
389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t		*sb_items[32];
399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t	*sb_faces[7][2];		// 0 is gibbed, 1 is dead, 2-6 are alive
419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream							// 0 is static, 1 is temporary animation
429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t	*sb_face_invis;
439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t	*sb_face_quad;
449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t	*sb_face_invuln;
459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t	*sb_face_invis_invuln;
469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqboolean	sb_showscores;
489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint			sb_lines;			// scan lines to draw
509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *rsb_invbar[2];
529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *rsb_weapons[5];
539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *rsb_items[2];
549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *rsb_ammo[3];
559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *rsb_teambord;		// PGM 01/19/97 - team color border
569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//MED 01/04/97 added two more weapons + 3 alternates for grenade launcher
589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *hsb_weapons[7][5];   // 0 is active, 1 is owned, 2-5 are flashes
599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//MED 01/04/97 added array to simplify weapon parsing
609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint         hipweapons[4] = {HIT_LASER_CANNON_BIT,HIT_MJOLNIR_BIT,4,HIT_PROXIMITY_GUN_BIT};
619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//MED 01/04/97 added hipnotic items array
629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamqpic_t      *hsb_items[2];
639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_MiniDeathmatchOverlay (void);
659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DeathmatchOverlay (void);
669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid M_DrawPic (int x, int y, qpic_t *pic);
679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_ShowScores
719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamTab key down
739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_ShowScores (void)
769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (sb_showscores)
789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_showscores = true;
809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_updates = 0;
819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DontShowScores
869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamTab key up
889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DontShowScores (void)
919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_showscores = false;
939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_updates = 0;
949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_Changed
999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_Changed (void)
1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_updates = 0;	// update next frame
1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_Init
1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_Init (void)
1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		i;
1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<10 ; i++)
1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_nums[0][i] = Draw_PicFromWad (va("num_%i",i));
1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_nums[1][i] = Draw_PicFromWad (va("anum_%i",i));
1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_nums[0][10] = Draw_PicFromWad ("num_minus");
1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_nums[1][10] = Draw_PicFromWad ("anum_minus");
1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_colon = Draw_PicFromWad ("num_colon");
1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_slash = Draw_PicFromWad ("num_slash");
1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[0][0] = Draw_PicFromWad ("inv_shotgun");
1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[0][1] = Draw_PicFromWad ("inv_sshotgun");
1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[0][2] = Draw_PicFromWad ("inv_nailgun");
1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[0][3] = Draw_PicFromWad ("inv_snailgun");
1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[0][4] = Draw_PicFromWad ("inv_rlaunch");
1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[0][5] = Draw_PicFromWad ("inv_srlaunch");
1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[0][6] = Draw_PicFromWad ("inv_lightng");
1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[1][0] = Draw_PicFromWad ("inv2_shotgun");
1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[1][1] = Draw_PicFromWad ("inv2_sshotgun");
1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[1][2] = Draw_PicFromWad ("inv2_nailgun");
1389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[1][3] = Draw_PicFromWad ("inv2_snailgun");
1399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[1][4] = Draw_PicFromWad ("inv2_rlaunch");
1409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[1][5] = Draw_PicFromWad ("inv2_srlaunch");
1419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_weapons[1][6] = Draw_PicFromWad ("inv2_lightng");
1429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<5 ; i++)
1449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
1459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_weapons[2+i][0] = Draw_PicFromWad (va("inva%i_shotgun",i+1));
1469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_weapons[2+i][1] = Draw_PicFromWad (va("inva%i_sshotgun",i+1));
1479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_weapons[2+i][2] = Draw_PicFromWad (va("inva%i_nailgun",i+1));
1489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_weapons[2+i][3] = Draw_PicFromWad (va("inva%i_snailgun",i+1));
1499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_weapons[2+i][4] = Draw_PicFromWad (va("inva%i_rlaunch",i+1));
1509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_weapons[2+i][5] = Draw_PicFromWad (va("inva%i_srlaunch",i+1));
1519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_weapons[2+i][6] = Draw_PicFromWad (va("inva%i_lightng",i+1));
1529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
1539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_ammo[0] = Draw_PicFromWad ("sb_shells");
1559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_ammo[1] = Draw_PicFromWad ("sb_nails");
1569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_ammo[2] = Draw_PicFromWad ("sb_rocket");
1579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_ammo[3] = Draw_PicFromWad ("sb_cells");
1589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_armor[0] = Draw_PicFromWad ("sb_armor1");
1609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_armor[1] = Draw_PicFromWad ("sb_armor2");
1619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_armor[2] = Draw_PicFromWad ("sb_armor3");
1629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_items[0] = Draw_PicFromWad ("sb_key1");
1649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_items[1] = Draw_PicFromWad ("sb_key2");
1659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_items[2] = Draw_PicFromWad ("sb_invis");
1669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_items[3] = Draw_PicFromWad ("sb_invuln");
1679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_items[4] = Draw_PicFromWad ("sb_suit");
1689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_items[5] = Draw_PicFromWad ("sb_quad");
1699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_sigil[0] = Draw_PicFromWad ("sb_sigil1");
1719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_sigil[1] = Draw_PicFromWad ("sb_sigil2");
1729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_sigil[2] = Draw_PicFromWad ("sb_sigil3");
1739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_sigil[3] = Draw_PicFromWad ("sb_sigil4");
1749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[4][0] = Draw_PicFromWad ("face1");
1769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[4][1] = Draw_PicFromWad ("face_p1");
1779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[3][0] = Draw_PicFromWad ("face2");
1789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[3][1] = Draw_PicFromWad ("face_p2");
1799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[2][0] = Draw_PicFromWad ("face3");
1809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[2][1] = Draw_PicFromWad ("face_p3");
1819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[1][0] = Draw_PicFromWad ("face4");
1829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[1][1] = Draw_PicFromWad ("face_p4");
1839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[0][0] = Draw_PicFromWad ("face5");
1849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_faces[0][1] = Draw_PicFromWad ("face_p5");
1859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_face_invis = Draw_PicFromWad ("face_invis");
1879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_face_invuln = Draw_PicFromWad ("face_invul2");
1889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_face_invis_invuln = Draw_PicFromWad ("face_inv2");
1899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_face_quad = Draw_PicFromWad ("face_quad");
1909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Cmd_AddCommand ("+showscores", Sbar_ShowScores);
1929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Cmd_AddCommand ("-showscores", Sbar_DontShowScores);
1939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_sbar = Draw_PicFromWad ("sbar");
1959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_ibar = Draw_PicFromWad ("ibar");
1969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_scorebar = Draw_PicFromWad ("scorebar");
1979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//MED 01/04/97 added new hipnotic weapons
1999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (hipnotic)
2009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
2019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[0][0] = Draw_PicFromWad ("inv_laser");
2029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[0][1] = Draw_PicFromWad ("inv_mjolnir");
2039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[0][2] = Draw_PicFromWad ("inv_gren_prox");
2049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[0][3] = Draw_PicFromWad ("inv_prox_gren");
2059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[0][4] = Draw_PicFromWad ("inv_prox");
2069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[1][0] = Draw_PicFromWad ("inv2_laser");
2089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[1][1] = Draw_PicFromWad ("inv2_mjolnir");
2099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[1][2] = Draw_PicFromWad ("inv2_gren_prox");
2109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[1][3] = Draw_PicFromWad ("inv2_prox_gren");
2119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_weapons[1][4] = Draw_PicFromWad ("inv2_prox");
2129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  for (i=0 ; i<5 ; i++)
2149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  {
2159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		 hsb_weapons[2+i][0] = Draw_PicFromWad (va("inva%i_laser",i+1));
2169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		 hsb_weapons[2+i][1] = Draw_PicFromWad (va("inva%i_mjolnir",i+1));
2179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		 hsb_weapons[2+i][2] = Draw_PicFromWad (va("inva%i_gren_prox",i+1));
2189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		 hsb_weapons[2+i][3] = Draw_PicFromWad (va("inva%i_prox_gren",i+1));
2199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		 hsb_weapons[2+i][4] = Draw_PicFromWad (va("inva%i_prox",i+1));
2209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  }
2219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_items[0] = Draw_PicFromWad ("sb_wsuit");
2239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	  hsb_items[1] = Draw_PicFromWad ("sb_eshld");
2249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
2259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (rogue)
2279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
2289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_invbar[0] = Draw_PicFromWad ("r_invbar1");
2299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_invbar[1] = Draw_PicFromWad ("r_invbar2");
2309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_weapons[0] = Draw_PicFromWad ("r_lava");
2329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_weapons[1] = Draw_PicFromWad ("r_superlava");
2339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_weapons[2] = Draw_PicFromWad ("r_gren");
2349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_weapons[3] = Draw_PicFromWad ("r_multirock");
2359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_weapons[4] = Draw_PicFromWad ("r_plasma");
2369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_items[0] = Draw_PicFromWad ("r_shield1");
2389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        rsb_items[1] = Draw_PicFromWad ("r_agrav1");
2399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// PGM 01/19/97 - team color border
2419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        rsb_teambord = Draw_PicFromWad ("r_teambord");
2429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// PGM 01/19/97 - team color border
2439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_ammo[0] = Draw_PicFromWad ("r_ammolava");
2459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_ammo[1] = Draw_PicFromWad ("r_ammomulti");
2469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		rsb_ammo[2] = Draw_PicFromWad ("r_ammoplasma");
2479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
2489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
2499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//=============================================================================
2529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// drawing routines are relative to the status bar location
2549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
2569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
2579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawPic
2589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
2599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
2609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawPic (int x, int y, qpic_t *pic)
2619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
2629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype == GAME_DEATHMATCH)
2639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Pic (x /* + ((vid.width - 320)>>1)*/, y + (vid.height-SBAR_HEIGHT), pic);
2649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
2659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Pic (x + ((vid.width - 320)>>1), y + (vid.height-SBAR_HEIGHT), pic);
2669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
2679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
2699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
2709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawTransPic
2719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
2729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
2739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawTransPic (int x, int y, qpic_t *pic)
2749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
2759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype == GAME_DEATHMATCH)
2769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_TransPic (x /*+ ((vid.width - 320)>>1)*/, y + (vid.height-SBAR_HEIGHT), pic);
2779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
2789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_TransPic (x + ((vid.width - 320)>>1), y + (vid.height-SBAR_HEIGHT), pic);
2799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
2809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
2829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream================
2839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawCharacter
2849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDraws one solid graphics character
2869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream================
2879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
2889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawCharacter (int x, int y, int num)
2899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
2909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype == GAME_DEATHMATCH)
2919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x /*+ ((vid.width - 320)>>1) */ + 4 , y + vid.height-SBAR_HEIGHT, num);
2929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
2939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x + ((vid.width - 320)>>1) + 4 , y + vid.height-SBAR_HEIGHT, num);
2949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
2959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
2979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream================
2989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawString
2999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream================
3009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
3019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawString (int x, int y, char *str)
3029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
3039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype == GAME_DEATHMATCH)
3049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_String (x /*+ ((vid.width - 320)>>1)*/, y+ vid.height-SBAR_HEIGHT, str);
3059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
3069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_String (x + ((vid.width - 320)>>1), y+ vid.height-SBAR_HEIGHT, str);
3079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
3089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
3109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
3119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_itoa
3129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
3139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
3149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint Sbar_itoa (int num, char *buf)
3159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
3169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char	*str;
3179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		pow10;
3189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		dig;
3199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	str = buf;
3219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (num < 0)
3239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
3249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		*str++ = '-';
3259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		num = -num;
3269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
3279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (pow10 = 10 ; num >= pow10 ; pow10 *= 10)
3299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	;
3309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	do
3329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
3339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		pow10 /= 10;
3349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		dig = num/pow10;
3359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		*str++ = '0'+dig;
3369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		num -= dig*pow10;
3379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	} while (pow10 != 1);
3389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	*str = 0;
3409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	return str-buf;
3429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
3439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
3469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
3479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawNum
3489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream=============
3499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
3509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawNum (int x, int y, int num, int digits, int color)
3519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
3529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char			str[12];
3539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char			*ptr;
3549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				l, frame;
3559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	l = Sbar_itoa (num, str);
3579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	ptr = str;
3589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (l > digits)
3599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		ptr += (l-digits);
3609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (l < digits)
3619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		x += (digits-l)*24;
3629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	while (*ptr)
3649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
3659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (*ptr == '-')
3669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			frame = STAT_MINUS;
3679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		else
3689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			frame = *ptr -'0';
3699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawTransPic (x,y,sb_nums[color][frame]);
3719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		x += 24;
3729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		ptr++;
3739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
3749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
3759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//=============================================================================
3779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint		fragsort[MAX_SCOREBOARD];
3799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamchar	scoreboardtext[MAX_SCOREBOARD][20];
3819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint		scoreboardtop[MAX_SCOREBOARD];
3829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint		scoreboardbottom[MAX_SCOREBOARD];
3839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint		scoreboardcount[MAX_SCOREBOARD];
3849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint		scoreboardlines;
3859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
3879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
3889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_SortFrags
3899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
3909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
3919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_SortFrags (void)
3929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
3939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		i, j, k;
3949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// sort by frags
3969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scoreboardlines = 0;
3979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<cl.maxclients ; i++)
3989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
3999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (cl.scores[i].name[0])
4009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
4019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			fragsort[scoreboardlines] = i;
4029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			scoreboardlines++;
4039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
4049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
4059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<scoreboardlines ; i++)
4079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		for (j=0 ; j<scoreboardlines-1-i ; j++)
4089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (cl.scores[fragsort[j]].frags < cl.scores[fragsort[j+1]].frags)
4099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			{
4109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				k = fragsort[j];
4119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				fragsort[j] = fragsort[j+1];
4129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				fragsort[j+1] = k;
4139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			}
4149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
4159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamint	Sbar_ColorForMap (int m)
4179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
4189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	return m < 128 ? m + 8 : m + 8;
4199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
4209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
4229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
4239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_UpdateScoreboard
4249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
4259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
4269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_UpdateScoreboard (void)
4279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
4289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		i, k;
4299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		top, bottom;
4309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scoreboard_t	*s;
4319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_SortFrags ();
4339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// draw the text
4359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	memset (scoreboardtext, 0, sizeof(scoreboardtext));
4369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<scoreboardlines; i++)
4389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
4399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		k = fragsort[i];
4409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		s = &cl.scores[k];
4419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (&scoreboardtext[i][1], "%3i %s", s->frags, s->name);
4429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = s->colors & 0xf0;
4449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = (s->colors & 15) <<4;
4459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		scoreboardtop[i] = Sbar_ColorForMap (top);
4469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		scoreboardbottom[i] = Sbar_ColorForMap (bottom);
4479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
4489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
4499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
4539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
4549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_SoloScoreboard
4559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
4569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
4579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_SoloScoreboard (void)
4589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
4599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char	str[80];
4609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		minutes, seconds, tens, units;
4619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		l;
4629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sprintf (str,"Monsters:%3i /%3i", cl.stats[STAT_MONSTERS], cl.stats[STAT_TOTALMONSTERS]);
4649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_DrawString (8, 4, str);
4659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sprintf (str,"Secrets :%3i /%3i", cl.stats[STAT_SECRETS], cl.stats[STAT_TOTALSECRETS]);
4679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_DrawString (8, 12, str);
4689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// time
470cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich	minutes = (int)(cl.time / 60);
471cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich	seconds = (int)(cl.time - 60*minutes);
4729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	tens = seconds / 10;
4739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	units = seconds - 10*tens;
4749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sprintf (str,"Time :%3i:%i%i", minutes, tens, units);
4759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_DrawString (184, 4, str);
4769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// draw level name
4789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	l = strlen (cl.levelname);
4799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_DrawString (232 - l*4, 12, cl.levelname);
4809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
4819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
4839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
4849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawScoreboard
4859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
4869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
4879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawScoreboard (void)
4889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
4899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_SoloScoreboard ();
4909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype == GAME_DEATHMATCH)
4919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DeathmatchOverlay ();
4929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if 0
4939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		i, j, c;
4949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		x, y;
4959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		l;
4969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		top, bottom;
4979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scoreboard_t	*s;
4989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype != GAME_DEATHMATCH)
5009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
5019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_SoloScoreboard ();
5029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
5039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
5049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_UpdateScoreboard ();
5069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	l = scoreboardlines <= 6 ? scoreboardlines : 6;
5089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<l ; i++)
5109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
5119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		x = 20*(i&1);
5129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		y = i/2 * 8;
5139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		s = &cl.scores[fragsort[i]];
5159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (!s->name[0])
5169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			continue;
5179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw background
5199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = s->colors & 0xf0;
5209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = (s->colors & 15)<<4;
5219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = Sbar_ColorForMap (top);
5229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = Sbar_ColorForMap (bottom);
5239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill ( x*8+10 + ((vid.width - 320)>>1), y + vid.height - SBAR_HEIGHT, 28, 4, top);
5259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill ( x*8+10 + ((vid.width - 320)>>1), y+4 + vid.height - SBAR_HEIGHT, 28, 4, bottom);
5269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw text
5289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		for (j=0 ; j<20 ; j++)
5299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
5309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			c = scoreboardtext[i][j];
5319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (c == 0 || c == ' ')
5329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				continue;
5339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( (x+j)*8, y, c);
5349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
5359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
5369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif
5379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
5389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//=============================================================================
5409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
5429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
5439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawInventory
5449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
5459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
5469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawInventory (void)
5479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
5489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		i;
5499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char	num[6];
5509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	float	time;
5519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		flashon;
5529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (rogue)
5549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
5559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if ( cl.stats[STAT_ACTIVEWEAPON] >= RIT_LAVA_NAILGUN )
5569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawPic (0, -24, rsb_invbar[0]);
5579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		else
5589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawPic (0, -24, rsb_invbar[1]);
5599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
5609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
5619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
5629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (0, -24, sb_ibar);
5639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
5649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// weapons
5669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<7 ; i++)
5679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
5689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (cl.items & (IT_SHOTGUN<<i) )
5699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
5709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			time = cl.item_gettime[i];
5719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			flashon = (int)((cl.time - time)*10);
5729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (flashon >= 10)
5739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			{
5749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if ( cl.stats[STAT_ACTIVEWEAPON] == (IT_SHOTGUN<<i)  )
5759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					flashon = 1;
5769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				else
5779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					flashon = 0;
5789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			}
5799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else
5809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				flashon = (flashon%5) + 2;
5819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         Sbar_DrawPic (i*24, -16, sb_weapons[flashon][i]);
5839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (flashon > 1)
5859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				sb_updates = 0;		// force update to remove flash
5869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
5879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
5889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// MED 01/04/97
5909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// hipnotic weapons
5919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    if (hipnotic)
5929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    {
5939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      int grenadeflashing=0;
5949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      for (i=0 ; i<4 ; i++)
5959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      {
5969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         if (cl.items & (1<<hipweapons[i]) )
5979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         {
5989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            time = cl.item_gettime[hipweapons[i]];
5999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            flashon = (int)((cl.time - time)*10);
6009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            if (flashon >= 10)
6019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            {
6029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               if ( cl.stats[STAT_ACTIVEWEAPON] == (1<<hipweapons[i])  )
6039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  flashon = 1;
6049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               else
6059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  flashon = 0;
6069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            }
6079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            else
6089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               flashon = (flashon%5) + 2;
6099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            // check grenade launcher
6119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            if (i==2)
6129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            {
6139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               if (cl.items & HIT_PROXIMITY_GUN)
6149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               {
6159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  if (flashon)
6169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  {
6179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                     grenadeflashing = 1;
6189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                     Sbar_DrawPic (96, -16, hsb_weapons[flashon][2]);
6199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  }
6209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               }
6219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            }
6229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            else if (i==3)
6239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            {
6249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               if (cl.items & (IT_SHOTGUN<<4))
6259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               {
6269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  if (flashon && !grenadeflashing)
6279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  {
6289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                     Sbar_DrawPic (96, -16, hsb_weapons[flashon][3]);
6299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  }
6309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  else if (!grenadeflashing)
6319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  {
6329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                     Sbar_DrawPic (96, -16, hsb_weapons[0][3]);
6339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  }
6349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               }
6359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               else
6369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                  Sbar_DrawPic (96, -16, hsb_weapons[flashon][4]);
6379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            }
6389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            else
6399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               Sbar_DrawPic (176 + (i*24), -16, hsb_weapons[flashon][i]);
6409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            if (flashon > 1)
6419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               sb_updates = 0;      // force update to remove flash
6429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         }
6439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      }
6449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    }
6459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (rogue)
6479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
6489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    // check for powered up weapon.
6499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if ( cl.stats[STAT_ACTIVEWEAPON] >= RIT_LAVA_NAILGUN )
6509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
6519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			for (i=0;i<5;i++)
6529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			{
6539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if (cl.stats[STAT_ACTIVEWEAPON] == (RIT_LAVA_NAILGUN << i))
6549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				{
6559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic ((i+2)*24, -16, rsb_weapons[i]);
6569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				}
6579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			}
6589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
6599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
6609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// ammo counts
6629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<4 ; i++)
6639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
6649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (num, "%3i",cl.stats[STAT_SHELLS+i] );
6659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (num[0] != ' ')
6669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( (6*i+1)*8 - 2, -24, 18 + num[0] - '0');
6679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (num[1] != ' ')
6689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( (6*i+2)*8 - 2, -24, 18 + num[1] - '0');
6699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (num[2] != ' ')
6709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( (6*i+3)*8 - 2, -24, 18 + num[2] - '0');
6719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
6729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	flashon = 0;
6749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   // items
6759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   for (i=0 ; i<6 ; i++)
6769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      if (cl.items & (1<<(17+i)))
6779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      {
6789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         time = cl.item_gettime[17+i];
6799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         if (time && time > cl.time - 2 && flashon )
6809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         {  // flash frame
6819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            sb_updates = 0;
6829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         }
6839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         else
6849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         {
6859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         //MED 01/04/97 changed keys
6869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            if (!hipnotic || (i>1))
6879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            {
6889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               Sbar_DrawPic (192 + i*16, -16, sb_items[i]);
6899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            }
6909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         }
6919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         if (time && time > cl.time - 2)
6929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            sb_updates = 0;
6939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      }
6949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   //MED 01/04/97 added hipnotic items
6959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   // hipnotic items
6969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   if (hipnotic)
6979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   {
6989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      for (i=0 ; i<2 ; i++)
6999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         if (cl.items & (1<<(24+i)))
7009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         {
7019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            time = cl.item_gettime[24+i];
7029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            if (time && time > cl.time - 2 && flashon )
7039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            {  // flash frame
7049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               sb_updates = 0;
7059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            }
7069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            else
7079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            {
7089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               Sbar_DrawPic (288 + i*16, -16, hsb_items[i]);
7099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            }
7109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            if (time && time > cl.time - 2)
7119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream               sb_updates = 0;
7129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         }
7139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   }
7149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (rogue)
7169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
7179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// new rogue items
7189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		for (i=0 ; i<2 ; i++)
7199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
7209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (cl.items & (1<<(29+i)))
7219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			{
7229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				time = cl.item_gettime[29+i];
7239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if (time &&	time > cl.time - 2 && flashon )
7259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				{	// flash frame
7269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					sb_updates = 0;
7279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				}
7289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				else
7299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				{
7309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (288 + i*16, -16, rsb_items[i]);
7319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				}
7329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if (time &&	time > cl.time - 2)
7349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					sb_updates = 0;
7359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			}
7369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
7379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
7389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
7399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
7409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// sigils
7419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		for (i=0 ; i<4 ; i++)
7429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
7439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (cl.items & (1<<(28+i)))
7449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			{
7459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				time = cl.item_gettime[28+i];
7469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if (time &&	time > cl.time - 2 && flashon )
7479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				{	// flash frame
7489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					sb_updates = 0;
7499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				}
7509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				else
7519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (320-32 + i*8, -16, sb_sigil[i]);
7529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if (time &&	time > cl.time - 2)
7539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					sb_updates = 0;
7549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			}
7559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
7569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
7579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
7589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//=============================================================================
7609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
7629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
7639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawFrags
7649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
7659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
7669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawFrags (void)
7679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
7689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				i, k, l;
7699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				top, bottom;
7709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				x, y, f;
7719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				xofs;
7729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char			num[12];
7739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scoreboard_t	*s;
7749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_SortFrags ();
7769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// draw the text
7789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	l = scoreboardlines <= 4 ? scoreboardlines : 4;
7799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	x = 23;
7819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype == GAME_DEATHMATCH)
7829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		xofs = 0;
7839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
7849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		xofs = (vid.width - 320)>>1;
7859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	y = vid.height - SBAR_HEIGHT - 23;
7869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<l ; i++)
7889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
7899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		k = fragsort[i];
7909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		s = &cl.scores[k];
7919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (!s->name[0])
7929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			continue;
7939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw background
7959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = s->colors & 0xf0;
7969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = (s->colors & 15)<<4;
7979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = Sbar_ColorForMap (top);
7989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = Sbar_ColorForMap (bottom);
7999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill (xofs + x*8 + 10, y, 28, 4, top);
8019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill (xofs + x*8 + 10, y+4, 28, 3, bottom);
8029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw number
8049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		f = s->frags;
8059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (num, "%3i",f);
8069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawCharacter ( (x+1)*8 , -24, num[0]);
8089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawCharacter ( (x+2)*8 , -24, num[1]);
8099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawCharacter ( (x+3)*8 , -24, num[2]);
8109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (k == cl.viewentity - 1)
8129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
8139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter (x*8+2, -24, 16);
8149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( (x+4)*8-4, -24, 17);
8159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
8169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		x+=4;
8179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
8189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
8199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//=============================================================================
8219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
8249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
8259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DrawFace
8269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
8279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
8289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DrawFace (void)
8299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
8309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		f, anim;
8319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// PGM 01/19/97 - team color drawing
8339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// PGM 03/02/97 - fixed so color swatch only appears in CTF modes
8349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (rogue &&
8359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        (cl.maxclients != 1) &&
8369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        (teamplay.value>3) &&
8379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        (teamplay.value<7))
8389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
8399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		int				top, bottom;
8409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		int				xofs;
8419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		char			num[12];
8429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		scoreboard_t	*s;
8439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		s = &cl.scores[cl.viewentity - 1];
8459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		// draw background
8469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = s->colors & 0xf0;
8479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = (s->colors & 15)<<4;
8489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = Sbar_ColorForMap (top);
8499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = Sbar_ColorForMap (bottom);
8509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (cl.gametype == GAME_DEATHMATCH)
8529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			xofs = 113;
8539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		else
8549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			xofs = ((vid.width - 320)>>1) + 113;
8559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (112, 0, rsb_teambord);
8579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill (xofs, vid.height-SBAR_HEIGHT+3, 22, 9, top);
8589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill (xofs, vid.height-SBAR_HEIGHT+12, 22, 9, bottom);
8599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		// draw number
8619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		f = s->frags;
8629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (num, "%3i",f);
8639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (top==8)
8659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
8669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (num[0] != ' ')
8679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawCharacter(109, 3, 18 + num[0] - '0');
8689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (num[1] != ' ')
8699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawCharacter(116, 3, 18 + num[1] - '0');
8709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (num[2] != ' ')
8719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawCharacter(123, 3, 18 + num[2] - '0');
8729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
8739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		else
8749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
8759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( 109, 3, num[0]);
8769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( 116, 3, num[1]);
8779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawCharacter ( 123, 3, num[2]);
8789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
8799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
8819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
8829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// PGM 01/19/97 - team color drawing
8839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
8849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if ( (cl.items & (IT_INVISIBILITY | IT_INVULNERABILITY) )
8859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	== (IT_INVISIBILITY | IT_INVULNERABILITY) )
8869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
8879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (112, 0, sb_face_invis_invuln);
8889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
8899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
8909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.items & IT_QUAD)
8919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
8929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (112, 0, sb_face_quad );
8939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
8949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
8959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.items & IT_INVISIBILITY)
8969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
8979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (112, 0, sb_face_invis );
8989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
8999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
9009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.items & IT_INVULNERABILITY)
9019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
9029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (112, 0, sb_face_invuln);
9039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
9049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
9059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.stats[STAT_HEALTH] >= 100)
9079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		f = 4;
9089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
9099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		f = cl.stats[STAT_HEALTH] / 20;
9109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.time <= cl.faceanimtime)
9129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
9139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		anim = 1;
9149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_updates = 0;		// make sure the anim gets drawn over
9159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
9169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else
9179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		anim = 0;
9189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_DrawPic (112, 0, sb_faces[f][anim]);
9199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
9209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
9229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
9239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_Draw
9249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream===============
9259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
9269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_Draw (void)
9279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
9289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (scr_con_current == vid.height)
9299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;		// console is full screen
930cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich
931cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich#if 0
9329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (sb_updates >= vid.numpages)
9339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
934cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich#else
935cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich	// Always draw status bar, to handle hardware that always destroys
936cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich	// the frame buffer. (essentially an infinite number of vid pages.)
937cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich#endif
9389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_copyeverything = 1;
9399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	sb_updates++;
9419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (sb_lines && vid.width > 320)
9439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_TileClear (0, vid.height - sb_lines, vid.width, sb_lines);
9449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (sb_lines > 24)
9469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
9479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawInventory ();
9489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (cl.maxclients != 1)
9499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawFrags ();
9509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
9519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (sb_showscores || cl.stats[STAT_HEALTH] <= 0)
9539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
9549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (0, 0, sb_scorebar);
9559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawScoreboard ();
9569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sb_updates = 0;
9579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
9589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	else if (sb_lines)
9599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
9609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawPic (0, 0, sb_sbar);
9619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
9629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   // keys (hipnotic only)
9639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      //MED 01/04/97 moved keys here so they would not be overwritten
9649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      if (hipnotic)
9659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      {
9669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         if (cl.items & IT_KEY1)
9679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            Sbar_DrawPic (209, 3, sb_items[0]);
9689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream         if (cl.items & IT_KEY2)
9699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            Sbar_DrawPic (209, 12, sb_items[1]);
9709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream      }
9719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream   // armor
9729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (cl.items & IT_INVULNERABILITY)
9739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
9749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawNum (24, 0, 666, 3, 1);
9759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_DrawPic (0, 0, draw_disc);
9769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
9779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		else
9789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
9799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (rogue)
9809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			{
9819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawNum (24, 0, cl.stats[STAT_ARMOR], 3,
9829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream								cl.stats[STAT_ARMOR] <= 25);
9839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if (cl.items & RIT_ARMOR3)
9849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (0, 0, sb_armor[2]);
9859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				else if (cl.items & RIT_ARMOR2)
9869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (0, 0, sb_armor[1]);
9879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				else if (cl.items & RIT_ARMOR1)
9889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (0, 0, sb_armor[0]);
9899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			}
9909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else
9919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			{
9929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawNum (24, 0, cl.stats[STAT_ARMOR], 3
9939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				, cl.stats[STAT_ARMOR] <= 25);
9949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				if (cl.items & IT_ARMOR3)
9959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (0, 0, sb_armor[2]);
9969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				else if (cl.items & IT_ARMOR2)
9979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (0, 0, sb_armor[1]);
9989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				else if (cl.items & IT_ARMOR1)
9999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					Sbar_DrawPic (0, 0, sb_armor[0]);
10009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			}
10019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
10029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// face
10049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawFace ();
10059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// health
10079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawNum (136, 0, cl.stats[STAT_HEALTH], 3
10089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		, cl.stats[STAT_HEALTH] <= 25);
10099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// ammo icon
10119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (rogue)
10129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
10139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (cl.items & RIT_SHELLS)
10149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[0]);
10159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & RIT_NAILS)
10169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[1]);
10179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & RIT_ROCKETS)
10189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[2]);
10199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & RIT_CELLS)
10209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[3]);
10219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & RIT_LAVA_NAILS)
10229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, rsb_ammo[0]);
10239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & RIT_PLASMA_AMMO)
10249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, rsb_ammo[1]);
10259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & RIT_MULTI_ROCKETS)
10269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, rsb_ammo[2]);
10279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
10289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		else
10299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		{
10309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			if (cl.items & IT_SHELLS)
10319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[0]);
10329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & IT_NAILS)
10339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[1]);
10349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & IT_ROCKETS)
10359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[2]);
10369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			else if (cl.items & IT_CELLS)
10379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream				Sbar_DrawPic (224, 0, sb_ammo[3]);
10389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
10399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DrawNum (248, 0, cl.stats[STAT_AMMO], 3,
10419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream					  cl.stats[STAT_AMMO] <= 10);
10429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
10439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (vid.width > 320) {
10459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (cl.gametype == GAME_DEATHMATCH)
10469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Sbar_MiniDeathmatchOverlay ();
10479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
10489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
10499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//=============================================================================
10519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
10539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
10549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_IntermissionNumber
10559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
10579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
10589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_IntermissionNumber (int x, int y, int num, int digits, int color)
10599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
10609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char			str[12];
10619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char			*ptr;
10629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				l, frame;
10639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	l = Sbar_itoa (num, str);
10659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	ptr = str;
10669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (l > digits)
10679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		ptr += (l-digits);
10689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (l < digits)
10699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		x += (digits-l)*24;
10709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	while (*ptr)
10729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
10739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (*ptr == '-')
10749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			frame = STAT_MINUS;
10759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		else
10769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			frame = *ptr -'0';
10779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_TransPic (x,y,sb_nums[color][frame]);
10799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		x += 24;
10809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		ptr++;
10819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
10829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
10839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
10859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
10869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DeathmatchOverlay
10879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
10899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
10909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_DeathmatchOverlay (void)
10919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
10929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	qpic_t			*pic;
10939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				i, k, l;
10949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				top, bottom;
10959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				x, y, f;
10969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char			num[12];
10979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scoreboard_t	*s;
10989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
10999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_copyeverything = 1;
11009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_fullupdate = 0;
11019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	pic = Draw_CachePic ("gfx/ranking.lmp");
11039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	M_DrawPic ((320-pic->width)/2, 8, pic);
11049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// scores
11069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_SortFrags ();
11079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// draw the text
11099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	l = scoreboardlines;
11109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	x = 80 + ((vid.width - 320)>>1);
11129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	y = 40;
11139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i=0 ; i<l ; i++)
11149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
11159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		k = fragsort[i];
11169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		s = &cl.scores[k];
11179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (!s->name[0])
11189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			continue;
11199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw background
11219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = s->colors & 0xf0;
11229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = (s->colors & 15)<<4;
11239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = Sbar_ColorForMap (top);
11249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = Sbar_ColorForMap (bottom);
11259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill ( x, y, 40, 4, top);
11279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill ( x, y+4, 40, 4, bottom);
11289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw number
11309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		f = s->frags;
11319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (num, "%3i",f);
11329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x+8 , y, num[0]);
11349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x+16 , y, num[1]);
11359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x+24 , y, num[2]);
11369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (k == cl.viewentity - 1)
11389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Draw_Character ( x - 8, y, 12);
11399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if 0
11419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
11429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				total;
11439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				n, minutes, tens, units;
11449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw time
11469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		total = cl.completed_time - s->entertime;
11479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		minutes = (int)total/60;
11489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		n = total - minutes*60;
11499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		tens = n/10;
11509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		units = n%10;
11519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (num, "%3i:%i%i", minutes, tens, units);
11539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_String ( x+48 , y, num);
11559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
11569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif
11579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw name
11599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_String (x+64, y, s->name);
11609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		y += 10;
11629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
11639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
11649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
11669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
11679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_DeathmatchOverlay
11689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
11709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
11719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_MiniDeathmatchOverlay (void)
11729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
11739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	qpic_t			*pic;
11749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				i, k, l;
11759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				top, bottom;
11769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				x, y, f;
11779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	char			num[12];
11789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scoreboard_t	*s;
11799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				numlines;
11809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (vid.width < 512 || !sb_lines)
11829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
11839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_copyeverything = 1;
11859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_fullupdate = 0;
11869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// scores
11889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_SortFrags ();
11899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// draw the text
11919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	l = scoreboardlines;
11929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	y = vid.height - sb_lines;
11939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	numlines = sb_lines/8;
11949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (numlines < 3)
11959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
11969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
11979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	//find us
11989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	for (i = 0; i < scoreboardlines; i++)
11999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (fragsort[i] == cl.viewentity - 1)
12009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			break;
12019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    if (i == scoreboardlines) // we're not there
12039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            i = 0;
12049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    else // figure out start
12059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            i = i - numlines/2;
12069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    if (i > scoreboardlines - numlines)
12089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            i = scoreboardlines - numlines;
12099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    if (i < 0)
12109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream            i = 0;
12119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	x = 324;
1213cabb5dd768714a7df34469a096b5e1aa815a2c22Jack Palevich	for (/* */; i < scoreboardlines && y < (int) (vid.height - 8) ; i++)
12149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
12159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		k = fragsort[i];
12169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		s = &cl.scores[k];
12179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (!s->name[0])
12189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			continue;
12199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw background
12219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = s->colors & 0xf0;
12229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = (s->colors & 15)<<4;
12239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		top = Sbar_ColorForMap (top);
12249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		bottom = Sbar_ColorForMap (bottom);
12259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill ( x, y+1, 40, 3, top);
12279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Fill ( x, y+4, 40, 4, bottom);
12289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw number
12309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		f = s->frags;
12319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (num, "%3i",f);
12329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x+8 , y, num[0]);
12349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x+16 , y, num[1]);
12359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_Character ( x+24 , y, num[2]);
12369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		if (k == cl.viewentity - 1) {
12389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Draw_Character ( x, y, 16);
12399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream			Draw_Character ( x + 32, y, 17);
12409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		}
12419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if 0
12439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
12449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				total;
12459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int				n, minutes, tens, units;
12469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw time
12489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		total = cl.completed_time - s->entertime;
12499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		minutes = (int)total/60;
12509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		n = total - minutes*60;
12519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		tens = n/10;
12529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		units = n%10;
12539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		sprintf (num, "%3i:%i%i", minutes, tens, units);
12559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_String ( x+48 , y, num);
12579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
12589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif
12599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	// draw name
12619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Draw_String (x+48, y, s->name);
12629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		y += 8;
12649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
12659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
12669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
12689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
12699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_IntermissionOverlay
12709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
12729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
12739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_IntermissionOverlay (void)
12749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
12759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	qpic_t	*pic;
12769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		dig;
12779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	int		num;
12789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_copyeverything = 1;
12809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_fullupdate = 0;
12819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	if (cl.gametype == GAME_DEATHMATCH)
12839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	{
12849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		Sbar_DeathmatchOverlay ();
12859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream		return;
12869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	}
12879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	pic = Draw_CachePic ("gfx/complete.lmp");
12899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_Pic (64, 24, pic);
12909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	pic = Draw_CachePic ("gfx/inter.lmp");
12929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_TransPic (0, 56, pic);
12939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
12949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// time
12959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	dig = cl.completed_time/60;
12969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_IntermissionNumber (160, 64, dig, 3, 0);
12979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	num = cl.completed_time - dig*60;
12989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_TransPic (234,64,sb_colon);
12999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_TransPic (246,64,sb_nums[0][num/10]);
13009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_TransPic (266,64,sb_nums[0][num%10]);
13019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_IntermissionNumber (160, 104, cl.stats[STAT_SECRETS], 3, 0);
13039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_TransPic (232,104,sb_slash);
13049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_IntermissionNumber (240, 104, cl.stats[STAT_TOTALSECRETS], 3, 0);
13059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_IntermissionNumber (160, 144, cl.stats[STAT_MONSTERS], 3, 0);
13079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_TransPic (232,144,sb_slash);
13089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Sbar_IntermissionNumber (240, 144, cl.stats[STAT_TOTALMONSTERS], 3, 0);
13099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
13119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
13149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
13159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSbar_FinaleOverlay
13169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream==================
13189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
13199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Sbar_FinaleOverlay (void)
13209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
13219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	qpic_t	*pic;
13229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	scr_copyeverything = 1;
13249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
13259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	pic = Draw_CachePic ("gfx/finale.lmp");
13269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream	Draw_TransPic ( (vid.width-pic->width)/2, 16, pic);
13279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}
1328