diff --git a/reaction/cgame/cg_draw.c b/reaction/cgame/cg_draw.c index e4056582..3445cc1c 100644 --- a/reaction/cgame/cg_draw.c +++ b/reaction/cgame/cg_draw.c @@ -2025,8 +2025,8 @@ static void CG_DrawCrosshair(void) { ( (cg.snap->ps.stats[STAT_RQ3] & RQ3_ZOOM_LOW) == RQ3_ZOOM_LOW || (cg.snap->ps.stats[STAT_RQ3] & RQ3_ZOOM_MED) == RQ3_ZOOM_MED ) ) { int zoomMag; - x = 640 / 2; - y = 480 / 2; + x = SCREEN_WIDTH / 2; + y = SCREEN_HEIGHT / 2; //derive zoom level - seems complicated but they're only bit comparisions if ( (cg.snap->ps.stats[STAT_RQ3] & RQ3_ZOOM_LOW) == RQ3_ZOOM_LOW && diff --git a/reaction/cgame/cg_info.c b/reaction/cgame/cg_info.c index c0ec3484..59ead63b 100644 --- a/reaction/cgame/cg_info.c +++ b/reaction/cgame/cg_info.c @@ -125,11 +125,16 @@ void CG_DrawInformation( void ) { const char *s; const char *info; const char *sysInfo; + char sTemp[1024]; + int x = 8; int y; int value; qhandle_t levelshot; qhandle_t detail; char buf[1024]; + qboolean skipdetail; + + skipdetail = qfalse; info = CG_ConfigString( CS_SERVERINFO ); sysInfo = CG_ConfigString( CS_SYSTEMINFO ); @@ -137,82 +142,111 @@ void CG_DrawInformation( void ) { s = Info_ValueForKey( info, "mapname" ); levelshot = trap_R_RegisterShaderNoMip( va( "levelshots/%s.tga", s ) ); if ( !levelshot ) { - levelshot = trap_R_RegisterShaderNoMip( "menu/art/unknownmap" ); + //Elder: changed + levelshot = trap_R_RegisterShaderNoMip( "levelshots/rq3-unknownmap.tga" ); + skipdetail = qtrue; + //levelshot = trap_R_RegisterShaderNoMip( "menu/art/unknownmap" ); } trap_R_SetColor( NULL ); CG_DrawPic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, levelshot ); // blend a detail texture over it - detail = trap_R_RegisterShader( "levelShotDetail" ); - trap_R_DrawStretchPic( 0, 0, cgs.glconfig.vidWidth, cgs.glconfig.vidHeight, 0, 0, 2.5, 2, detail ); + //Elder: changed to RQ3 detail overlay + if (!skipdetail) { + detail = trap_R_RegisterShader( "rq3-levelShotDetail" ); + trap_R_DrawStretchPic( 0, 0, cgs.glconfig.vidWidth, cgs.glconfig.vidHeight, 0, 0, 2.5, 2, detail ); + } + //Elder: "Letterbox" mask + CG_FillRect( 0, 0, SCREEN_WIDTH, 54, colorBlack); + CG_FillRect( 0, 426, SCREEN_WIDTH, 54, colorBlack); + CG_FillRect( 0, 54, SCREEN_WIDTH, 2, colorRed); + CG_FillRect( 0, 426, SCREEN_WIDTH, 2, colorRed); + + //Elder: mapname + UI_DrawProportionalString(x, 26, s, UI_LEFT|UI_DROPSHADOW, colorRed); + //CG_DrawBigStringColor(4, 24, s, color_red); + + //Elder: removed // draw the icons of things as they are loaded - CG_DrawLoadingIcons(); + //CG_DrawLoadingIcons(); // the first 150 rows are reserved for the client connection // screen to write into if ( cg.infoScreenText[0] ) { - UI_DrawProportionalString( 320, 128-32, va("Loading... %s", cg.infoScreenText), - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + //UI_DrawProportionalString( 320, 128-32, va("Loading... %s", cg.infoScreenText), + //UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, 434, va("LOADING... %s", Q_strupr(cg.infoScreenText)), colorWhite); } else { - UI_DrawProportionalString( 320, 128-32, "Awaiting snapshot...", - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + //UI_DrawProportionalString( 320, 128-32, "Awaiting snapshot...", + //UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor( x, 434, "AWAITING SNAPSHOT...", colorWhite); } // draw info string information - y = 180-32; + //y = 180-32; + //Elder: Initial y-position + y = 96; // don't print server lines if playing a local game trap_Cvar_VariableStringBuffer( "sv_running", buf, sizeof( buf ) ); if ( !atoi( buf ) ) { + + // map-specific message (long map name) + s = CG_ConfigString( CS_MESSAGE ); + if ( s[0] ) { + //UI_DrawProportionalString( 4, y, s, + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + //Q_strncpyz(buf, s, 1024); + //Q_CleanStr(buf); + CG_DrawSmallStringColor(x, y, s, colorWhite); + y += SMALLCHAR_HEIGHT; + } + // server hostname Q_strncpyz(buf, Info_ValueForKey( info, "sv_hostname" ), 1024); Q_CleanStr(buf); - UI_DrawProportionalString( 320, y, buf, - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //UI_DrawProportionalString( x, y, buf, + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, y, buf, colorWhite); + y += SMALLCHAR_HEIGHT; // pure server s = Info_ValueForKey( sysInfo, "sv_pure" ); if ( s[0] == '1' ) { - UI_DrawProportionalString( 320, y, "Pure Server", - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //UI_DrawProportionalString( 4, y, "Pure Server", + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, y, "PURE SERVER", colorWhite); + y += SMALLCHAR_HEIGHT; } // server-specific message of the day s = CG_ConfigString( CS_MOTD ); if ( s[0] ) { - UI_DrawProportionalString( 320, y, s, - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + UI_DrawProportionalString( x, 360, s, + UI_LEFT|UI_SMALLFONT, colorWhite ); y += PROP_HEIGHT; } // some extra space after hostname and motd - y += 10; - } - - // map-specific message (long map name) - s = CG_ConfigString( CS_MESSAGE ); - if ( s[0] ) { - UI_DrawProportionalString( 320, y, s, - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //y += 10; } // cheats warning s = Info_ValueForKey( sysInfo, "sv_cheats" ); if ( s[0] == '1' ) { - UI_DrawProportionalString( 320, y, "CHEATS ARE ENABLED", - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //UI_DrawProportionalString( x, y, "CHEATS ARE ENABLED", + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, y, "CHEATS ARE ENABLED", colorWhite); + y += SMALLCHAR_HEIGHT; } + y += SMALLCHAR_HEIGHT; // game type switch ( cgs.gametype ) { case GT_FFA: - s = "Free For All"; + s = "CLASSIC ACTION DEATHMATCH"; break; case GT_SINGLE_PLAYER: s = "Single Player"; @@ -241,32 +275,36 @@ void CG_DrawInformation( void ) { s = "Unknown Gametype"; break; } - UI_DrawProportionalString( 320, y, s, - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //UI_DrawProportionalString( x, y, s, + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, y, s, colorWhite); + y += SMALLCHAR_HEIGHT; value = atoi( Info_ValueForKey( info, "timelimit" ) ); if ( value ) { - UI_DrawProportionalString( 320, y, va( "timelimit %i", value ), - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //UI_DrawProportionalString( x, y, va( "timelimit %i", value ), + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, y, va( "TIMELIMIT %i", value ), colorWhite); + y += SMALLCHAR_HEIGHT; } if (cgs.gametype < GT_CTF ) { value = atoi( Info_ValueForKey( info, "fraglimit" ) ); if ( value ) { - UI_DrawProportionalString( 320, y, va( "fraglimit %i", value ), - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //UI_DrawProportionalString( x, y, va( "fraglimit %i", value ), + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, y, va( "FRAGLIMIT %i", value ), colorWhite); + y += SMALLCHAR_HEIGHT; } } if (cgs.gametype >= GT_CTF) { value = atoi( Info_ValueForKey( info, "capturelimit" ) ); if ( value ) { - UI_DrawProportionalString( 320, y, va( "capturelimit %i", value ), - UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); - y += PROP_HEIGHT; + //UI_DrawProportionalString( x, y, va( "capturelimit %i", value ), + //UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, colorWhite ); + CG_DrawSmallStringColor(x, y, va( "CAPTURELIMIT %i", value ), colorWhite); + y += SMALLCHAR_HEIGHT; } } } diff --git a/reaction/cgame/cg_weapons.c b/reaction/cgame/cg_weapons.c index f15ec3cb..1fe61653 100644 --- a/reaction/cgame/cg_weapons.c +++ b/reaction/cgame/cg_weapons.c @@ -1750,6 +1750,7 @@ void CG_SpecialWeapon_f( void ) { //Skip normal weapons switch (cg.weaponSelect) { case WP_PISTOL: + case WP_AKIMBO: case WP_KNIFE: case WP_GRENADE: continue;