0-19-00 VMs
UI
This commit is contained in:
Victor Chow 2001-11-13 05:32:49 +00:00
parent 1ee916a8c3
commit da77ea9bef
6 changed files with 355 additions and 183 deletions

View file

@ -182,16 +182,16 @@ void UI_DrawConnectScreen( qboolean overlay ) {
}
//320 64
UI_DrawProportionalString( x, 72, va("Connecting to %s", cstate.servername), UI_LEFT|UI_SMALLFONT, menu_text_color );
UI_DrawProportionalString( x, 72, va("Connect: %s", cstate.servername), UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, color_red );
//UI_DrawProportionalString( 320, 96, "Press Esc to abort", UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, menu_text_color );
// display global MOTD at bottom
UI_DrawProportionalString( x, 352,
Info_ValueForKey( cstate.updateInfoString, "motd" ), UI_LEFT|UI_SMALLFONT, menu_text_color );
Info_ValueForKey( cstate.updateInfoString, "motd" ), UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, menu_text_color );
// print any server info (server full, bad version, etc)
if ( cstate.connState < CA_CONNECTED ) {
UI_DrawProportionalString( x, 384, cstate.messageString, UI_LEFT|UI_SMALLFONT, menu_text_color );
UI_DrawProportionalString( x, 384, cstate.messageString, UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, menu_text_color );
}
#if 0
@ -249,7 +249,7 @@ void UI_DrawConnectScreen( qboolean overlay ) {
return;
}
UI_DrawProportionalString( x, 400, s, UI_LEFT|UI_SMALLFONT, color_white );
UI_DrawProportionalString( x, 400, s, UI_LEFT|UI_SMALLFONT|UI_DROPSHADOW, color_red );
//Elder: "Letterbox" mask - why it has to be here... *shrugs*
UI_FillRect( 0, 0, SCREEN_WIDTH, 54, color_black);

View file

@ -11,10 +11,16 @@ CONTROLS MENU
#include "ui_local.h"
#define ART_BACK0 "menu/art/back_0"
#define ART_BACK1 "menu/art/back_1"
#define ART_FRAMEL "menu/art/frame2_l"
#define ART_FRAMER "menu/art/frame1_r"
#define ART_BACK0 "menu/art/rq3-menu-back.tga"
#define ART_BACK1 "menu/art/rq3-menu-back-focus.tga"
//#define ART_BACK0 "menu/art/back_0"
//#define ART_BACK1 "menu/art/back_1"
//#define ART_FRAMEL "menu/art/frame2_l"
//#define ART_FRAMER "menu/art/frame1_r"
//Elder: RQ3 Setup assets
#define RQ3_SETUP_ICON "menu/art/rq3-setup-controls.jpg"
#define RQ3_SETUP_TITLE "menu/art/rq3-title-setup.jpg"
typedef struct {
@ -79,9 +85,8 @@ typedef struct
#define ID_MOUSELOOK 14
#define ID_CENTERVIEW 15
#define ID_ZOOMVIEW 16
//Blaze: Reaction Bins = knife
// Elder: WEAPON1 is now pistol
#define ID_WEAPON1 17
//Blaze: Reaction Binds = Pistol
#define ID_WEAPON2 18
#define ID_WEAPON3 19
#define ID_WEAPON4 20
@ -128,9 +133,7 @@ typedef struct
#define ANIM_TURNRIGHT 9
#define ANIM_LOOKUP 10
#define ANIM_LOOKDOWN 11
//Blaze: Reaction Knife
#define ANIM_WEAPON1 12
//Blaze: Reaction Pistol
#define ANIM_WEAPON2 13
#define ANIM_WEAPON3 14
#define ANIM_WEAPON4 15
@ -155,15 +158,21 @@ typedef struct
// menutext_s banner;
// menubitmap_s framel;
// menubitmap_s framer;
/*
menutext_s multim;
menutext_s setupm;
menutext_s demom;
menutext_s modsm;
menutext_s exitm;
*/
// menutext_s load;
// menutext_s save;
menutext_s defaults;
//Elder: RQ3 Stuff
menubitmap_s rq3_setupicon;
menubitmap_s rq3_setuptitle;
menubitmap_s player;
menutext_s movement;
@ -188,15 +197,15 @@ typedef struct
//menuaction_s chainsaw;
//menuaction_s machinegun;
//Blaze: Reaction weapons binds
menuaction_s knife;
menuaction_s mk23;
menuaction_s m3;
menuaction_s mp5;
menuaction_s handcannon;
menuaction_s ssg3000;
menuaction_s m4;
menuaction_s grenadelauncher;
menuaction_s rocketlauncher;
menuaction_s lightning;
menuaction_s railgun;
menuaction_s plasma;
menuaction_s bfg;
menuaction_s akimbos;
menuaction_s knife;
menuaction_s grenade;
menuaction_s attack;
menuaction_s prevweapon;
menuaction_s nextweapon;
@ -269,16 +278,15 @@ static bind_t g_bindings[] =
{"+zoom", "zoom view", ID_ZOOMVIEW, ANIM_IDLE, -1, -1, -1, -1},
//Blaze: Reaction Weapon binds
//Jbravo: order is important.
//Elder: my comment isn't important heh :)
{"weapon 1", "MK23", ID_WEAPON2, ANIM_WEAPON2, '2', -1, -1, -1},
{"weapon 2", "Shotgun", ID_WEAPON7, ANIM_WEAPON7, '7', -1, -1, -1},
{"weapon 3", "MP5", ID_WEAPON5, ANIM_WEAPON5, '5', -1, -1, -1},
{"weapon 4", "Hand Cannon", ID_WEAPON6, ANIM_WEAPON6, '6', -1, -1, -1},
{"weapon 5", "SSG3000", ID_WEAPON4, ANIM_WEAPON4, '4', -1, -1, -1},
{"weapon 6", "M4", ID_WEAPON3, ANIM_WEAPON3, '3', -1, -1, -1},
{"weapon 7", "Akimbo Pistols", ID_WEAPON8, ANIM_WEAPON8, '8', -1, -1, -1},
{"weapon 8", "Knife", ID_WEAPON1, ANIM_WEAPON1, '1', -1, -1, -1},
{"weapon 9", "Grenade", ID_WEAPON9, ANIM_WEAPON9, '9', -1, -1, -1},
{"weapon 1", "MK23 Pistol", ID_WEAPON1, ANIM_WEAPON1, '1', -1, -1, -1},
{"weapon 2", "M3 Super 90 Assault Shotgun", ID_WEAPON2, ANIM_WEAPON2, '2', -1, -1, -1},
{"weapon 3", "MP5/10 Submachinegun", ID_WEAPON3, ANIM_WEAPON3, '3', -1, -1, -1},
{"weapon 4", "Handcannon", ID_WEAPON4, ANIM_WEAPON4, '4', -1, -1, -1},
{"weapon 5", "Sniper Rifle", ID_WEAPON5, ANIM_WEAPON5, '5', -1, -1, -1},
{"weapon 6", "M4 Assault Rifle", ID_WEAPON6, ANIM_WEAPON6, '6', -1, -1, -1},
{"weapon 7", "Dual MK23 Pistols", ID_WEAPON7, ANIM_WEAPON7, '7', -1, -1, -1},
{"weapon 8", "Combat Knife", ID_WEAPON8, ANIM_WEAPON8, '8', -1, -1, -1},
{"weapon 9", "M26 Fragmentation Grenade", ID_WEAPON9, ANIM_WEAPON9, '9', -1, -1, -1},
{"+attack", "attack", ID_ATTACK, ANIM_ATTACK, K_CTRL, -1, -1, -1},
{"weapprev", "prev weapon", ID_WEAPPREV, ANIM_IDLE, '[', -1, -1, -1},
{"weapnext", "next weapon", ID_WEAPNEXT, ANIM_IDLE, ']', -1, -1, -1},
@ -289,7 +297,7 @@ static bind_t g_bindings[] =
{"messagemode4", "chat - attacker", ID_CHAT4, ANIM_CHAT, -1, -1, -1, -1},
{"bandage", "Bandage", ID_BANDAGE, ANIM_IDLE, -1, -1, -1, -1},
{"+button5", "Reload", ID_RELOAD, ANIM_RELOAD, -1, -1, -1, -1},
{"weapon", "Weapon Mode", ID_WEAPON, ANIM_IDLE, -1, -1, -1, -1},
{"weapon", "Weapon mode", ID_WEAPON, ANIM_IDLE, -1, -1, -1, -1},
{"opendoor", "Open door", ID_OPENDOOR, ANIM_IDLE, -1, -1, -1, -1},
{"dropweapon", "Drop Weapon", ID_DROPWEAP, ANIM_IDLE, -1, -1, -1, -1},
{"dropitem", "Drop Item", ID_DROPITEM, ANIM_IDLE, -1, -1, -1, -1},
@ -330,21 +338,20 @@ static menucommon_s *g_weapons_controls[] = {
(menucommon_s *)&s_controls.nextweapon,
(menucommon_s *)&s_controls.prevweapon,
(menucommon_s *)&s_controls.autoswitch,
//Blaze: No need for the chainsaw??? <- Gauntlet
// (menucommon_s *)&s_controls.chainsaw,
//Blaze: No need for the machinegun
// (menucommon_s *)&s_controls.machinegun,
//Blaze: Reaction knife menu addition
(menucommon_s *)&s_controls.knife,
//Blaze: Reaction pistol menu addition
//Blaze: No need for the chainsaw/gauntlet or machinegun
/*
(menucommon_s *)&s_controls.chainsaw,
(menucommon_s *)&s_controls.machinegun,
*/
(menucommon_s *)&s_controls.mk23,
(menucommon_s *)&s_controls.m4,
(menucommon_s *)&s_controls.grenadelauncher,
(menucommon_s *)&s_controls.rocketlauncher,
(menucommon_s *)&s_controls.lightning,
(menucommon_s *)&s_controls.railgun,
(menucommon_s *)&s_controls.plasma,
(menucommon_s *)&s_controls.bfg,
(menucommon_s *)&s_controls.m3,
(menucommon_s *)&s_controls.mp5,
(menucommon_s *)&s_controls.handcannon,
(menucommon_s *)&s_controls.ssg3000,
(menucommon_s *)&s_controls.m4,
(menucommon_s *)&s_controls.akimbos,
(menucommon_s *)&s_controls.knife,
(menucommon_s *)&s_controls.grenade,
NULL,
};
@ -544,37 +551,37 @@ static void Controls_UpdateModel( int anim ) {
*/
//Blaze: Reaction weapons
case ANIM_WEAPON1:
s_controls.playerWeapon = WP_KNIFE;
break;
case ANIM_WEAPON2:
s_controls.playerWeapon = WP_PISTOL;
break;
case ANIM_WEAPON3:
s_controls.playerWeapon = WP_M4;
break;
case ANIM_WEAPON4:
s_controls.playerWeapon = WP_SSG3000;
break;
case ANIM_WEAPON5:
s_controls.playerWeapon = WP_MP5;
break;
case ANIM_WEAPON6:
s_controls.playerWeapon = WP_HANDCANNON;
break;
case ANIM_WEAPON7:
case ANIM_WEAPON2:
s_controls.playerWeapon = WP_M3;
break;
case ANIM_WEAPON8:
case ANIM_WEAPON3:
s_controls.playerWeapon = WP_MP5;
break;
case ANIM_WEAPON4:
s_controls.playerWeapon = WP_HANDCANNON;
break;
case ANIM_WEAPON5:
s_controls.playerWeapon = WP_SSG3000;
break;
case ANIM_WEAPON6:
s_controls.playerWeapon = WP_M4;
break;
case ANIM_WEAPON7:
s_controls.playerWeapon = WP_AKIMBO;
break;
case ANIM_WEAPON8:
s_controls.playerWeapon = WP_KNIFE;
break;
case ANIM_WEAPON9:
s_controls.playerWeapon = WP_GRENADE;
break;
@ -597,7 +604,7 @@ static void Controls_UpdateModel( int anim ) {
s_controls.playerChat = qtrue;
break;
case ANIM_RELOAD:
Com_Printf("At Reload");
//Com_Printf("At Reload");
//s_controls.weapon.generic.
break;
@ -642,6 +649,7 @@ static void Controls_Update( void ) {
y = ( SCREEN_HEIGHT - j * SMALLCHAR_HEIGHT ) / 2;
// bk001204 - parentheses
for( j = 0; (control = controls[j]) ; j++, y += SMALLCHAR_HEIGHT ) {
//Elder: changed from 320
control->x = 320;
control->y = y;
control->left = 320 - 19*SMALLCHAR_WIDTH;
@ -1259,6 +1267,24 @@ static void Controls_InitWeapons( void ) {
}
}
/*
===============
Added by Elder
Controls_MenuDraw
===============
*/
static void Controls_MenuDraw( void ) {
//Elder: "Dim" and "Letterbox" mask
UI_FillRect( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, color_deepdim );
UI_FillRect( 0, 0, SCREEN_WIDTH, 54, color_black);
UI_FillRect( 0, 426, SCREEN_WIDTH, 54, color_black);
UI_FillRect( 0, 54, SCREEN_WIDTH, 2, color_red);
UI_FillRect( 0, 426, SCREEN_WIDTH, 2, color_red);
// standard menu drawing
Menu_Draw( &s_controls.menu );
}
/*
=================
Controls_MenuInit
@ -1273,6 +1299,7 @@ static void Controls_MenuInit( void )
Controls_Cache();
s_controls.menu.draw = Controls_MenuDraw;
s_controls.menu.key = Controls_MenuKey;
s_controls.menu.wrapAround = qtrue;
s_controls.menu.fullscreen = qtrue;
@ -1302,6 +1329,7 @@ static void Controls_MenuInit( void )
s_controls.framer.width = 256;
s_controls.framer.height = 334;
*/
/*
s_controls.multim.generic.type = MTYPE_PTEXT;
s_controls.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS|QMF_INACTIVE;
s_controls.multim.generic.x = 120;
@ -1341,7 +1369,25 @@ static void Controls_MenuInit( void )
s_controls.exitm.string = "EXIT";
s_controls.exitm.color = color_red;
s_controls.exitm.style = UI_CENTER | UI_DROPSHADOW;
*/
//Elder: Info for setup icon
s_controls.rq3_setupicon.generic.type = MTYPE_BITMAP;
s_controls.rq3_setupicon.generic.name = RQ3_SETUP_ICON;
s_controls.rq3_setupicon.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
s_controls.rq3_setupicon.generic.x = 0;
s_controls.rq3_setupicon.generic.y = 4;
s_controls.rq3_setupicon.width = RQ3_ICON_WIDTH;
s_controls.rq3_setupicon.height = RQ3_ICON_HEIGHT;
//Elder: Info for setup title
s_controls.rq3_setuptitle.generic.type = MTYPE_BITMAP;
s_controls.rq3_setuptitle.generic.name = RQ3_SETUP_TITLE;
s_controls.rq3_setuptitle.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
s_controls.rq3_setuptitle.generic.x = 64;
s_controls.rq3_setuptitle.generic.y = 12;
s_controls.rq3_setuptitle.width = 256;
s_controls.rq3_setuptitle.height = 32;
s_controls.looking.generic.type = MTYPE_PTEXT;
s_controls.looking.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
@ -1398,12 +1444,12 @@ static void Controls_MenuInit( void )
s_controls.back.generic.type = MTYPE_BITMAP;
s_controls.back.generic.name = ART_BACK0;
s_controls.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.back.generic.x = 0;
s_controls.back.generic.y = 480-64;
s_controls.back.generic.x = 8;
s_controls.back.generic.y = 480-44;
s_controls.back.generic.id = ID_BACK;
s_controls.back.generic.callback = Controls_MenuEvent;
s_controls.back.width = 128;
s_controls.back.height = 64;
s_controls.back.width = 32;
s_controls.back.height = 32;
s_controls.back.focuspic = ART_BACK1;
s_controls.player.generic.type = MTYPE_BITMAP;
@ -1489,61 +1535,60 @@ static void Controls_MenuInit( void )
s_controls.machinegun.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.machinegun.generic.id = ID_WEAPON2;
*/
s_controls.m4.generic.type = MTYPE_ACTION;
s_controls.m4.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.m4.generic.callback = Controls_ActionEvent;
s_controls.m4.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.m4.generic.id = ID_WEAPON3;
s_controls.grenadelauncher.generic.type = MTYPE_ACTION;
s_controls.grenadelauncher.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.grenadelauncher.generic.callback = Controls_ActionEvent;
s_controls.grenadelauncher.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.grenadelauncher.generic.id = ID_WEAPON4;
s_controls.rocketlauncher.generic.type = MTYPE_ACTION;
s_controls.rocketlauncher.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.rocketlauncher.generic.callback = Controls_ActionEvent;
s_controls.rocketlauncher.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.rocketlauncher.generic.id = ID_WEAPON5;
s_controls.lightning.generic.type = MTYPE_ACTION;
s_controls.lightning.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.lightning.generic.callback = Controls_ActionEvent;
s_controls.lightning.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.lightning.generic.id = ID_WEAPON6;
s_controls.railgun.generic.type = MTYPE_ACTION;
s_controls.railgun.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.railgun.generic.callback = Controls_ActionEvent;
s_controls.railgun.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.railgun.generic.id = ID_WEAPON7;
s_controls.plasma.generic.type = MTYPE_ACTION;
s_controls.plasma.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.plasma.generic.callback = Controls_ActionEvent;
s_controls.plasma.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.plasma.generic.id = ID_WEAPON8;
s_controls.bfg.generic.type = MTYPE_ACTION;
s_controls.bfg.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.bfg.generic.callback = Controls_ActionEvent;
s_controls.bfg.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.bfg.generic.id = ID_WEAPON9;
//Blaze: Reaction Binds
s_controls.knife.generic.type = MTYPE_ACTION;
s_controls.knife.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.knife.generic.callback = Controls_ActionEvent;
s_controls.knife.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.knife.generic.id = ID_WEAPON1;
s_controls.mk23.generic.type = MTYPE_ACTION;
s_controls.mk23.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.mk23.generic.callback = Controls_ActionEvent;
s_controls.mk23.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.mk23.generic.id = ID_WEAPON2;
s_controls.mk23.generic.id = ID_WEAPON1;
s_controls.m3.generic.type = MTYPE_ACTION;
s_controls.m3.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.m3.generic.callback = Controls_ActionEvent;
s_controls.m3.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.m3.generic.id = ID_WEAPON2;
s_controls.mp5.generic.type = MTYPE_ACTION;
s_controls.mp5.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.mp5.generic.callback = Controls_ActionEvent;
s_controls.mp5.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.mp5.generic.id = ID_WEAPON3;
s_controls.handcannon.generic.type = MTYPE_ACTION;
s_controls.handcannon.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.handcannon.generic.callback = Controls_ActionEvent;
s_controls.handcannon.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.handcannon.generic.id = ID_WEAPON4;
s_controls.ssg3000.generic.type = MTYPE_ACTION;
s_controls.ssg3000.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.ssg3000.generic.callback = Controls_ActionEvent;
s_controls.ssg3000.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.ssg3000.generic.id = ID_WEAPON5;
s_controls.m4.generic.type = MTYPE_ACTION;
s_controls.m4.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.m4.generic.callback = Controls_ActionEvent;
s_controls.m4.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.m4.generic.id = ID_WEAPON6;
s_controls.akimbos.generic.type = MTYPE_ACTION;
s_controls.akimbos.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.akimbos.generic.callback = Controls_ActionEvent;
s_controls.akimbos.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.akimbos.generic.id = ID_WEAPON7;
s_controls.knife.generic.type = MTYPE_ACTION;
s_controls.knife.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.knife.generic.callback = Controls_ActionEvent;
s_controls.knife.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.knife.generic.id = ID_WEAPON8;
s_controls.grenade.generic.type = MTYPE_ACTION;
s_controls.grenade.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.grenade.generic.callback = Controls_ActionEvent;
s_controls.grenade.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.grenade.generic.id = ID_WEAPON9;
s_controls.attack.generic.type = MTYPE_ACTION;
s_controls.attack.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
@ -1752,11 +1797,15 @@ static void Controls_MenuInit( void )
// Menu_AddItem( &s_controls.menu, &s_controls.banner );
// Menu_AddItem( &s_controls.menu, &s_controls.framel );
// Menu_AddItem( &s_controls.menu, &s_controls.framer );
/*
Menu_AddItem( &s_controls.menu, &s_controls.multim );
Menu_AddItem( &s_controls.menu, &s_controls.setupm );
Menu_AddItem( &s_controls.menu, &s_controls.demom );
Menu_AddItem( &s_controls.menu, &s_controls.modsm );
Menu_AddItem( &s_controls.menu, &s_controls.exitm );
*/
Menu_AddItem( &s_controls.menu, &s_controls.rq3_setupicon );
Menu_AddItem( &s_controls.menu, &s_controls.rq3_setuptitle );
Menu_AddItem( &s_controls.menu, &s_controls.player );
Menu_AddItem( &s_controls.menu, &s_controls.name );
@ -1799,16 +1848,16 @@ static void Controls_MenuInit( void )
// Menu_AddItem( &s_controls.menu, &s_controls.chainsaw );
// Menu_AddItem( &s_controls.menu, &s_controls.machinegun );
//Blaze: Reaction weapon additions Pistol replaces machinegun
Menu_AddItem( &s_controls.menu, &s_controls.knife);
Menu_AddItem( &s_controls.menu, &s_controls.mk23);
Menu_AddItem( &s_controls.menu, &s_controls.m3);
Menu_AddItem( &s_controls.menu, &s_controls.mp5 );
Menu_AddItem( &s_controls.menu, &s_controls.handcannon );
Menu_AddItem( &s_controls.menu, &s_controls.ssg3000 );
Menu_AddItem( &s_controls.menu, &s_controls.m4 );
Menu_AddItem( &s_controls.menu, &s_controls.grenadelauncher );
Menu_AddItem( &s_controls.menu, &s_controls.rocketlauncher );
Menu_AddItem( &s_controls.menu, &s_controls.lightning );
Menu_AddItem( &s_controls.menu, &s_controls.railgun );
Menu_AddItem( &s_controls.menu, &s_controls.plasma );
Menu_AddItem( &s_controls.menu, &s_controls.bfg );
Menu_AddItem( &s_controls.menu, &s_controls.akimbos );
Menu_AddItem( &s_controls.menu, &s_controls.knife );
Menu_AddItem( &s_controls.menu, &s_controls.grenade );
Menu_AddItem( &s_controls.menu, &s_controls.showscores );
Menu_AddItem( &s_controls.menu, &s_controls.useitem );
@ -1860,8 +1909,10 @@ Controls_Cache
void Controls_Cache( void ) {
trap_R_RegisterShaderNoMip( ART_BACK0 );
trap_R_RegisterShaderNoMip( ART_BACK1 );
trap_R_RegisterShaderNoMip( ART_FRAMEL );
trap_R_RegisterShaderNoMip( ART_FRAMER );
trap_R_RegisterShaderNoMip( RQ3_SETUP_ICON );
trap_R_RegisterShaderNoMip( RQ3_SETUP_TITLE );
//trap_R_RegisterShaderNoMip( ART_FRAMEL );
//trap_R_RegisterShaderNoMip( ART_FRAMER );
}

View file

@ -39,7 +39,7 @@ Elder's modifications
#define LEFT_JUSTIFY_POSITION 330
//Elder: fader code parameters - plus nicer to access vec4_t with COLOR_*
#define FADE_START_TIME 5000
#define FADE_START_TIME 4000
#define FADE_DURATION 10000
#define COLOR_R 0
#define COLOR_G 1
@ -130,7 +130,7 @@ cr_line credits[] = { // edit this as necessary for your credits
// Artwork - models, textures, whatever
{ "", UI_CENTER|UI_SMALLFONT, &color_blue, FIXEDWIDTH },
{ "ART", UI_RIGHT|UI_SMALLFONT, &color_headertext, FIXEDWIDTH },
{ "SONIC128", UI_LEFT|UI_SMALLFONT, &color_maintext, FIXEDWIDTH },
{ "LINH NGUYEN (SONIC128)", UI_LEFT|UI_SMALLFONT, &color_maintext, FIXEDWIDTH },
{ "IAN MCEACHERN (FROST)", UI_LEFT|UI_SMALLFONT, &color_maintext, FIXEDWIDTH },
{ "BRIAN MILLS (BIRDMAN)", UI_LEFT|UI_SMALLFONT, &color_maintext, FIXEDWIDTH },
{ "MARK POTNICK (CLOUD)", UI_LEFT|UI_SMALLFONT, &color_maintext, FIXEDWIDTH },

View file

@ -2,17 +2,22 @@
//
#include "ui_local.h"
#define MODEL_BACK0 "menu/art/back_0"
#define MODEL_BACK1 "menu/art/back_1"
// Elder: changed
#define MODEL_BACK0 "menu/art/rq3-menu-back.tga"
#define MODEL_BACK1 "menu/art/rq3-menu-back-focus"
#define MODEL_SELECT "menu/art/opponents_select"
#define MODEL_SELECTED "menu/art/opponents_selected"
#define MODEL_FRAMEL "menu/art/frame1_l"
#define MODEL_FRAMER "menu/art/frame1_r"
#define MODEL_PORTS "menu/art/player_models_ports"
//#define MODEL_FRAMEL "menu/art/frame1_l"
//#define MODEL_FRAMER "menu/art/frame1_r"
//#define MODEL_PORTS "menu/art/player_models_ports"
#define MODEL_ARROWS "menu/art/gs_arrows_0"
#define MODEL_ARROWSL "menu/art/gs_arrows_l"
#define MODEL_ARROWSR "menu/art/gs_arrows_r"
//Elder: RQ3 stuff
#define RQ3_SETUP_ICON "menu/art/rq3-setup-player.jpg"
#define RQ3_SETUP_TITLE "menu/art/rq3-title-setup.tga"
#define LOW_MEMORY (5 * 1024 * 1024)
static char* playermodel_artlist[] =
@ -21,9 +26,9 @@ static char* playermodel_artlist[] =
MODEL_BACK1,
MODEL_SELECT,
MODEL_SELECTED,
MODEL_FRAMEL,
MODEL_FRAMER,
MODEL_PORTS,
//MODEL_FRAMEL,
//MODEL_FRAMER,
//MODEL_PORTS,
MODEL_ARROWS,
MODEL_ARROWSL,
MODEL_ARROWSR,
@ -64,13 +69,19 @@ typedef struct
//Blaze: Dont need this any more
// menubitmap_s framel;
// menubitmap_s framer;
/*
menutext_s multim;
menutext_s setupm;
menutext_s demom;
menutext_s modsm;
menutext_s exitm;
*/
menubitmap_s ports;
//Elder: RQ3 stuff
menubitmap_s rq3_setuptitle;
menubitmap_s rq3_setupicon;
// menubitmap_s ports;
// menutext_s banner;
menubitmap_s back;
menubitmap_s player;
@ -79,7 +90,7 @@ typedef struct
menubitmap_s right;
menutext_s modelname;
menutext_s skinname;
menutext_s playername;
// menutext_s playername;
playerInfo_t playerinfo;
int nummodels;
char modelnames[MAX_PLAYERMODELS][128];
@ -91,6 +102,26 @@ typedef struct
static playermodel_t s_playermodel;
/*
===============
Added by Elder
PlayerModel_MenuDraw
===============
*/
static void PlayerModel_MenuDraw( void ) {
//Elder: "Dim" and "Letterbox" mask
UI_FillRect( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, color_deepdim );
UI_FillRect( 0, 0, SCREEN_WIDTH, 54, color_black);
UI_FillRect( 0, 426, SCREEN_WIDTH, 54, color_black);
UI_FillRect( 0, 54, SCREEN_WIDTH, 2, color_red);
UI_FillRect( 0, 426, SCREEN_WIDTH, 2, color_red);
// standard menu drawing
Menu_Draw( &s_playermodel.menu );
}
/*
=================
PlayerModel_UpdateGrid
@ -163,13 +194,13 @@ static void PlayerModel_UpdateModel( void )
memset( &s_playermodel.playerinfo, 0, sizeof(playerInfo_t) );
viewangles[YAW] = 180 - 30;
viewangles[YAW] = 180 - 60;
viewangles[PITCH] = 0;
viewangles[ROLL] = 0;
VectorClear( moveangles );
UI_PlayerInfo_SetModel( &s_playermodel.playerinfo, s_playermodel.modelskin );
UI_PlayerInfo_SetInfo( &s_playermodel.playerinfo, LEGS_IDLE, TORSO_STAND, viewangles, moveangles, WP_KNIFE, qfalse );
UI_PlayerInfo_SetInfo( &s_playermodel.playerinfo, LEGS_IDLE, TORSO_STAND, viewangles, moveangles, WP_M4, qfalse );
}
/*
@ -450,8 +481,8 @@ static void PlayerModel_SetMenuItems( void )
char* pdest;
// name
trap_Cvar_VariableStringBuffer( "name", s_playermodel.playername.string, 16 );
Q_CleanStr( s_playermodel.playername.string );
//trap_Cvar_VariableStringBuffer( "name", s_playermodel.playername.string, 16 );
//Q_CleanStr( s_playermodel.playername.string );
// model
trap_Cvar_VariableStringBuffer( "model", s_playermodel.modelskin, 64 );
@ -506,7 +537,7 @@ static void PlayerModel_MenuInit( void )
int k;
int x;
int y;
static char playername[32];
//static char playername[32];
static char modelname[32];
static char skinname[32];
@ -515,6 +546,7 @@ static void PlayerModel_MenuInit( void )
PlayerModel_Cache();
s_playermodel.menu.draw = PlayerModel_MenuDraw;
s_playermodel.menu.key = PlayerModel_MenuKey;
s_playermodel.menu.wrapAround = qtrue;
s_playermodel.menu.fullscreen = qtrue;
@ -543,6 +575,7 @@ static void PlayerModel_MenuInit( void )
s_playermodel.framer.width = 256;
s_playermodel.framer.height = 334;
*/
/*
s_playermodel.multim.generic.type = MTYPE_PTEXT;
s_playermodel.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS|QMF_INACTIVE;
s_playermodel.multim.generic.x = 120;
@ -583,16 +616,36 @@ static void PlayerModel_MenuInit( void )
s_playermodel.exitm.string = "EXIT";
s_playermodel.exitm.color = color_red;
s_playermodel.exitm.style = UI_CENTER | UI_DROPSHADOW;
*/
//Elder: Info for system icon
s_playermodel.rq3_setupicon.generic.type = MTYPE_BITMAP;
s_playermodel.rq3_setupicon.generic.name = RQ3_SETUP_ICON;
s_playermodel.rq3_setupicon.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
s_playermodel.rq3_setupicon.generic.x = 0;
s_playermodel.rq3_setupicon.generic.y = 4;
s_playermodel.rq3_setupicon.width = RQ3_ICON_WIDTH;
s_playermodel.rq3_setupicon.height = RQ3_ICON_HEIGHT;
//Elder: Info for setup title
s_playermodel.rq3_setuptitle.generic.type = MTYPE_BITMAP;
s_playermodel.rq3_setuptitle.generic.name = RQ3_SETUP_TITLE;
s_playermodel.rq3_setuptitle.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
s_playermodel.rq3_setuptitle.generic.x = 64;
s_playermodel.rq3_setuptitle.generic.y = 12;
s_playermodel.rq3_setuptitle.width = 256;
s_playermodel.rq3_setuptitle.height = 32;
/*
s_playermodel.ports.generic.type = MTYPE_BITMAP;
s_playermodel.ports.generic.name = MODEL_PORTS;
s_playermodel.ports.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
s_playermodel.ports.generic.x = 50;
s_playermodel.ports.generic.y = 59;
s_playermodel.ports.generic.y = 72;
s_playermodel.ports.width = 274;
s_playermodel.ports.height = 274;
y = 59;
*/
y = 72;
for (i=0,k=0; i<PLAYERGRID_ROWS; i++)
{
x = 50;
@ -626,7 +679,7 @@ static void PlayerModel_MenuInit( void )
}
y += 64+6;
}
/*
s_playermodel.playername.generic.type = MTYPE_PTEXT;
s_playermodel.playername.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE;
s_playermodel.playername.generic.x = 320;
@ -634,11 +687,11 @@ static void PlayerModel_MenuInit( void )
s_playermodel.playername.string = playername;
s_playermodel.playername.style = UI_CENTER;
s_playermodel.playername.color = text_color_normal;
*/
s_playermodel.modelname.generic.type = MTYPE_PTEXT;
s_playermodel.modelname.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE;
s_playermodel.modelname.generic.x = 497;
s_playermodel.modelname.generic.y = 54;
s_playermodel.modelname.generic.y = 64;
s_playermodel.modelname.string = modelname;
s_playermodel.modelname.style = UI_CENTER;
s_playermodel.modelname.color = text_color_normal;
@ -646,7 +699,7 @@ static void PlayerModel_MenuInit( void )
s_playermodel.skinname.generic.type = MTYPE_PTEXT;
s_playermodel.skinname.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE;
s_playermodel.skinname.generic.x = 497;
s_playermodel.skinname.generic.y = 394;
s_playermodel.skinname.generic.y = 380;
s_playermodel.skinname.string = skinname;
s_playermodel.skinname.style = UI_CENTER;
s_playermodel.skinname.color = text_color_normal;
@ -663,7 +716,7 @@ static void PlayerModel_MenuInit( void )
s_playermodel.arrows.generic.name = MODEL_ARROWS;
s_playermodel.arrows.generic.flags = QMF_INACTIVE;
s_playermodel.arrows.generic.x = 125;
s_playermodel.arrows.generic.y = 340;
s_playermodel.arrows.generic.y = 360;
s_playermodel.arrows.width = 128;
s_playermodel.arrows.height = 32;
@ -672,7 +725,7 @@ static void PlayerModel_MenuInit( void )
s_playermodel.left.generic.callback = PlayerModel_MenuEvent;
s_playermodel.left.generic.id = ID_PREVPAGE;
s_playermodel.left.generic.x = 125;
s_playermodel.left.generic.y = 340;
s_playermodel.left.generic.y = 360;
s_playermodel.left.width = 64;
s_playermodel.left.height = 32;
s_playermodel.left.focuspic = MODEL_ARROWSL;
@ -682,7 +735,7 @@ static void PlayerModel_MenuInit( void )
s_playermodel.right.generic.callback = PlayerModel_MenuEvent;
s_playermodel.right.generic.id = ID_NEXTPAGE;
s_playermodel.right.generic.x = 125+61;
s_playermodel.right.generic.y = 340;
s_playermodel.right.generic.y = 360;
s_playermodel.right.width = 64;
s_playermodel.right.height = 32;
s_playermodel.right.focuspic = MODEL_ARROWSR;
@ -692,24 +745,27 @@ static void PlayerModel_MenuInit( void )
s_playermodel.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
s_playermodel.back.generic.callback = PlayerModel_MenuEvent;
s_playermodel.back.generic.id = ID_BACK;
s_playermodel.back.generic.x = 0;
s_playermodel.back.generic.y = 480-64;
s_playermodel.back.width = 128;
s_playermodel.back.height = 64;
s_playermodel.back.generic.x = 8;
s_playermodel.back.generic.y = 480-44;
s_playermodel.back.width = 32;
s_playermodel.back.height = 32;
s_playermodel.back.focuspic = MODEL_BACK1;
//Blaze: Dont need this
// Menu_AddItem( &s_playermodel.menu, &s_playermodel.banner );
// Menu_AddItem( &s_playermodel.menu, &s_playermodel.framel );
// Menu_AddItem( &s_playermodel.menu, &s_playermodel.framer );
/*
Menu_AddItem( &s_playermodel.menu, &s_playermodel.demom );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.multim );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.exitm );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.setupm );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.modsm);
Menu_AddItem( &s_playermodel.menu, &s_playermodel.ports );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.playername );
*/
Menu_AddItem( &s_playermodel.menu, &s_playermodel.rq3_setupicon );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.rq3_setuptitle );
// Menu_AddItem( &s_playermodel.menu, &s_playermodel.ports );
// Menu_AddItem( &s_playermodel.menu, &s_playermodel.playername );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.modelname );
Menu_AddItem( &s_playermodel.menu, &s_playermodel.skinname );

View file

@ -4,8 +4,10 @@
//#define ART_FRAMEL "menu/art/frame2_l"
//#define ART_FRAMER "menu/art/frame1_r"
#define ART_MODEL0 "menu/art/model_0"
#define ART_MODEL1 "menu/art/model_1"
//#define ART_MODEL0 "menu/art/model_0"
//#define ART_MODEL1 "menu/art/model_1"
#define ART_MODEL0 "menu/art/rq3-player-models.jpg"
#define ART_MODEL1 "menu/art/rq3-player-models-focus.jpg"
#define ART_BACK0 "menu/art/rq3-menu-back.tga"
#define ART_BACK1 "menu/art/rq3-menu-back-focus.tga"
//#define ART_BACK0 "menu/art/back_0"
@ -23,6 +25,8 @@
#define RQ3_SETUP_ICON "menu/art/rq3-setup-player.jpg"
#define RQ3_SETUP_TITLE "menu/art/rq3-title-setup.tga"
#define PLAYERINFO_X_POS 72
#define ID_NAME 10
#define ID_HANDICAP 11
#define ID_EFFECTS 12
@ -163,9 +167,10 @@ static void PlayerSettings_DrawName( void *self ) {
}
// draw at bottom also using proportional font
Q_strncpyz( name, f->field.buffer, sizeof(name) );
Q_CleanStr( name );
UI_DrawProportionalString( 320, 440, name, UI_CENTER|UI_BIGFONT, text_color_normal );
// Elder removed
//Q_strncpyz( name, f->field.buffer, sizeof(name) );
//Q_CleanStr( name );
//UI_DrawProportionalString( 320, 440, name, UI_CENTER|UI_BIGFONT, text_color_normal );
}
@ -239,10 +244,11 @@ static void PlayerSettings_DrawPlayer( void *self ) {
strcpy( s_playersettings.playerModel, buf );
viewangles[YAW] = 180 - 60;
//viewangles[YAW] = ( uis.realtime / 1000 ) % 360;
viewangles[PITCH] = 0;
viewangles[ROLL] = 0;
//Blaze: Default draw of player, changed WP_MACHINEGUN to WP_PISTOL
UI_PlayerInfo_SetInfo( &s_playersettings.playerinfo, LEGS_IDLE, TORSO_STAND, viewangles, vec3_origin, WP_PISTOL, qfalse );
UI_PlayerInfo_SetInfo( &s_playersettings.playerinfo, LEGS_IDLE, TORSO_STAND, viewangles, vec3_origin, WP_M4, qfalse );
}
b = (menubitmap_s*) self;
@ -304,12 +310,13 @@ static void PlayerSettings_SetMenuItems( void ) {
memset( &s_playersettings.playerinfo, 0, sizeof(playerInfo_t) );
viewangles[YAW] = 180 - 30;
//viewangles[YAW] = ( uis.realtime / 1000 ) % 360;
viewangles[PITCH] = 0;
viewangles[ROLL] = 0;
UI_PlayerInfo_SetModel( &s_playersettings.playerinfo, UI_Cvar_VariableString( "model" ) );
//Blaze: Changed WP_MACHINEGUN to WP_PISTOL
UI_PlayerInfo_SetInfo( &s_playersettings.playerinfo, LEGS_IDLE, TORSO_STAND, viewangles, vec3_origin, WP_PISTOL, qfalse );
UI_PlayerInfo_SetInfo( &s_playersettings.playerinfo, LEGS_IDLE, TORSO_STAND, viewangles, vec3_origin, WP_M4, qfalse );
// handicap
h = Com_Clamp( 5, 100, trap_Cvar_VariableValue("handicap") );
@ -355,6 +362,8 @@ static void PlayerSettings_MenuDraw( void ) {
UI_FillRect( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, color_deepdim );
UI_FillRect( 0, 0, SCREEN_WIDTH, 54, color_black);
UI_FillRect( 0, 426, SCREEN_WIDTH, 54, color_black);
UI_FillRect( 0, 54, SCREEN_WIDTH, 2, color_red);
UI_FillRect( 0, 426, SCREEN_WIDTH, 2, color_red);
// standard menu drawing
Menu_Draw( &s_playersettings.menu );
@ -468,7 +477,7 @@ static void PlayerSettings_MenuInit( void ) {
s_playersettings.name.generic.ownerdraw = PlayerSettings_DrawName;
s_playersettings.name.field.widthInChars = MAX_NAMELENGTH;
s_playersettings.name.field.maxchars = MAX_NAMELENGTH;
s_playersettings.name.generic.x = 192;
s_playersettings.name.generic.x = PLAYERINFO_X_POS;
s_playersettings.name.generic.y = y;
s_playersettings.name.generic.left = 192 - 8;
s_playersettings.name.generic.top = y - 8;
@ -480,7 +489,7 @@ static void PlayerSettings_MenuInit( void ) {
s_playersettings.handicap.generic.flags = QMF_NODEFAULTINIT;
s_playersettings.handicap.generic.id = ID_HANDICAP;
s_playersettings.handicap.generic.ownerdraw = PlayerSettings_DrawHandicap;
s_playersettings.handicap.generic.x = 192;
s_playersettings.handicap.generic.x = PLAYERINFO_X_POS;
s_playersettings.handicap.generic.y = y;
s_playersettings.handicap.generic.left = 192 - 8;
s_playersettings.handicap.generic.top = y - 8;
@ -493,7 +502,7 @@ static void PlayerSettings_MenuInit( void ) {
s_playersettings.effects.generic.flags = QMF_NODEFAULTINIT;
s_playersettings.effects.generic.id = ID_EFFECTS;
s_playersettings.effects.generic.ownerdraw = PlayerSettings_DrawEffects;
s_playersettings.effects.generic.x = 192;
s_playersettings.effects.generic.x = PLAYERINFO_X_POS;
s_playersettings.effects.generic.y = y;
s_playersettings.effects.generic.left = 192 - 8;
s_playersettings.effects.generic.top = y - 8;
@ -506,10 +515,10 @@ static void PlayerSettings_MenuInit( void ) {
s_playersettings.model.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_playersettings.model.generic.id = ID_MODEL;
s_playersettings.model.generic.callback = PlayerSettings_MenuEvent;
s_playersettings.model.generic.x = 640;
s_playersettings.model.generic.y = 480-64;
s_playersettings.model.width = 128;
s_playersettings.model.height = 64;
s_playersettings.model.generic.x = 640 - 8;
s_playersettings.model.generic.y = 480-44;
s_playersettings.model.width = 64;
s_playersettings.model.height = 32;
s_playersettings.model.focuspic = ART_MODEL1;
s_playersettings.player.generic.type = MTYPE_BITMAP;

View file

@ -40,7 +40,11 @@ GAME OPTIONS MENU
//Elder: RQ3 stuff
#define ID_MUZZLEFLASH 139
#define ID_PAINBLEND 140
#define ID_ANNOUNCER 141
#define ID_IMPACTEFFECTS 142
//#define
typedef struct {
menuframework_s menu;
@ -61,6 +65,9 @@ typedef struct {
menutext_s rq3_statustext;
menuradiobutton_s rq3_muzzleflash;
menuradiobutton_s rq3_painblend;
menuradiobutton_s rq3_announcer;
menuradiobutton_s rq3_impacteffects;
menulist_s crosshair;
menuradiobutton_s simpleitems;
@ -120,7 +127,10 @@ static void Preferences_SetMenuItems( void ) {
s_preferences.drawteamoverlay.curvalue = Com_Clamp( 0, 3, trap_Cvar_VariableValue( "cg_drawTeamOverlay" ) );
s_preferences.allowdownload.curvalue = trap_Cvar_VariableValue( "cl_allowDownload" ) != 0;
//Elder: added
s_preferences.rq3_muzzleflash.curvalue = trap_Cvar_VariableValue( "rxn_flash" ) != 0;
s_preferences.rq3_muzzleflash.curvalue = trap_Cvar_VariableValue( "cg_RQ3_flash" ) != 0;
s_preferences.rq3_painblend.curvalue = trap_Cvar_VariableValue( "cg_RQ3_painBlend" ) != 0;
s_preferences.rq3_impacteffects.curvalue = trap_Cvar_VariableValue( "cg_RQ3_impactEffects" ) != 0;
s_preferences.rq3_announcer.curvalue = trap_Cvar_VariableValue( "cg_RQ3_announcer" ) != 0;
}
@ -180,7 +190,19 @@ static void Preferences_Event( void* ptr, int event ) {
case ID_MUZZLEFLASH:
s_preferences.rq3_statustext.string = "Enable weapon muzzle flashes";
break;
case ID_PAINBLEND:
s_preferences.rq3_statustext.string = "Enable screen pain blends";
break;
case ID_ANNOUNCER:
s_preferences.rq3_statustext.string = "Enable Quake 3 announcer";
break;
case ID_IMPACTEFFECTS:
s_preferences.rq3_statustext.string = "Enable visual projectile impact effects";
break;
case ID_BACK:
s_preferences.rq3_statustext.string = "Return to main menu";
break;
@ -245,7 +267,11 @@ static void Preferences_Event( void* ptr, int event ) {
break;
case ID_MUZZLEFLASH:
trap_Cvar_SetValue( "rxn_flash", s_preferences.allowdownload.curvalue );
trap_Cvar_SetValue( "cg_RQ3_flash", s_preferences.allowdownload.curvalue );
break;
case ID_PAINBLEND:
trap_Cvar_SetValue( "cg_RQ3_painBlend", s_preferences.allowdownload.curvalue );
break;
case ID_BACK:
@ -432,6 +458,15 @@ static void Preferences_MenuInit( void ) {
s_preferences.wallmarks.generic.x = PREFERENCES_X_POS;
s_preferences.wallmarks.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.rq3_impacteffects.generic.type = MTYPE_RADIOBUTTON;
s_preferences.rq3_impacteffects.generic.name = "Impact Effects:";
s_preferences.rq3_impacteffects.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_preferences.rq3_impacteffects.generic.callback = Preferences_Event;
s_preferences.rq3_impacteffects.generic.id = ID_IMPACTEFFECTS;
s_preferences.rq3_impacteffects.generic.x = PREFERENCES_X_POS;
s_preferences.rq3_impacteffects.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.brass.generic.type = MTYPE_RADIOBUTTON;
s_preferences.brass.generic.name = "Ejecting Brass:";
@ -459,6 +494,24 @@ static void Preferences_MenuInit( void ) {
s_preferences.rq3_muzzleflash.generic.x = PREFERENCES_X_POS;
s_preferences.rq3_muzzleflash.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.rq3_painblend.generic.type = MTYPE_RADIOBUTTON;
s_preferences.rq3_painblend.generic.name = "Pain Blends:";
s_preferences.rq3_painblend.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_preferences.rq3_painblend.generic.callback = Preferences_Event;
s_preferences.rq3_painblend.generic.id = ID_PAINBLEND;
s_preferences.rq3_painblend.generic.x = PREFERENCES_X_POS;
s_preferences.rq3_painblend.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.rq3_announcer.generic.type = MTYPE_RADIOBUTTON;
s_preferences.rq3_announcer.generic.name = "Announcer:";
s_preferences.rq3_announcer.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_preferences.rq3_announcer.generic.callback = Preferences_Event;
s_preferences.rq3_announcer.generic.id = ID_ANNOUNCER;
s_preferences.rq3_announcer.generic.x = PREFERENCES_X_POS;
s_preferences.rq3_announcer.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.identifytarget.generic.type = MTYPE_RADIOBUTTON;
s_preferences.identifytarget.generic.name = "Identify Target:";
@ -552,9 +605,12 @@ static void Preferences_MenuInit( void ) {
Menu_AddItem( &s_preferences.menu, &s_preferences.crosshair );
Menu_AddItem( &s_preferences.menu, &s_preferences.simpleitems );
Menu_AddItem( &s_preferences.menu, &s_preferences.wallmarks );
Menu_AddItem( &s_preferences.menu, &s_preferences.rq3_impacteffects );
Menu_AddItem( &s_preferences.menu, &s_preferences.brass );
Menu_AddItem( &s_preferences.menu, &s_preferences.dynamiclights );
Menu_AddItem( &s_preferences.menu, &s_preferences.rq3_muzzleflash );
Menu_AddItem( &s_preferences.menu, &s_preferences.rq3_painblend );
Menu_AddItem( &s_preferences.menu, &s_preferences.rq3_announcer );
Menu_AddItem( &s_preferences.menu, &s_preferences.identifytarget );
Menu_AddItem( &s_preferences.menu, &s_preferences.highqualitysky );
Menu_AddItem( &s_preferences.menu, &s_preferences.synceveryframe );