VM 0-20-00
UI
This commit is contained in:
Victor Chow 2001-11-14 05:04:59 +00:00
parent 322e8aa7de
commit d090ed8331
6 changed files with 419 additions and 153 deletions

View file

@ -21,6 +21,12 @@ CONTROLS MENU
//Elder: RQ3 Setup assets
#define RQ3_SETUP_ICON "menu/art/rq3-setup-controls.jpg"
#define RQ3_SETUP_TITLE "menu/art/rq3-title-setup.jpg"
#define RQ3_FOCUS_BUTTON "menu/art/rq3-menu-focus.tga"
#define RQ3_LOOKING_BUTTON "menu/art/rq3-controls-looking.jpg"
#define RQ3_MOVEMENT_BUTTON "menu/art/rq3-controls-movement.jpg"
#define RQ3_WEAPONS_BUTTON "menu/art/rq3-controls-weapons.jpg"
#define RQ3_MISC_BUTTON "menu/art/rq3-controls-misc.jpg"
#define RQ3_REACTION_BUTTON "menu/art/rq3-controls-reaction.jpg"
typedef struct {
@ -172,15 +178,23 @@ typedef struct
//Elder: RQ3 Stuff
menubitmap_s rq3_setupicon;
menubitmap_s rq3_setuptitle;
menutext_s rq3_statustext;
menubitmap_s player;
/*
menutext_s movement;
menutext_s looking;
menutext_s weapons;
menutext_s misc;
*/
menubitmap_s movement;
menubitmap_s looking;
menubitmap_s weapons;
menubitmap_s misc;
//Blaze: Reaction Menu
menutext_s reaction;
menubitmap_s reaction;
menuaction_s walkforward;
menuaction_s backpedal;
@ -278,15 +292,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.
{"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},
{"weapon 1", "MK23 Pistol", ID_WEAPON1, ANIM_WEAPON1, '1', -1, -1, -1},
{"weapon 2", "M3 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 Frag 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},
@ -551,43 +565,56 @@ static void Controls_UpdateModel( int anim ) {
*/
//Blaze: Reaction weapons
case ANIM_WEAPON1:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_PISTOL;
break;
case ANIM_WEAPON2:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_M3;
break;
case ANIM_WEAPON3:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_MP5;
break;
case ANIM_WEAPON4:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_HANDCANNON;
break;
case ANIM_WEAPON5:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_SSG3000;
break;
case ANIM_WEAPON6:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_M4;
break;
case ANIM_WEAPON7:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_AKIMBO;
break;
case ANIM_WEAPON8:
s_controls.playerTorso = TORSO_STAND2;
s_controls.playerWeapon = WP_KNIFE;
break;
case ANIM_WEAPON9:
s_controls.playerTorso = TORSO_STAND2;
s_controls.playerWeapon = WP_GRENADE;
break;
case ANIM_ATTACK:
s_controls.playerTorso = TORSO_ATTACK;
if ( s_controls.playerWeapon == WP_GRENADE ||
s_controls.playerWeapon == WP_KNIFE )
s_controls.playerTorso = TORSO_ATTACK2;
else
s_controls.playerTorso = TORSO_ATTACK;
break;
case ANIM_GESTURE:
@ -650,10 +677,10 @@ static void Controls_Update( void ) {
// bk001204 - parentheses
for( j = 0; (control = controls[j]) ; j++, y += SMALLCHAR_HEIGHT ) {
//Elder: changed from 320
control->x = 320;
control->x = 200;
control->y = y;
control->left = 320 - 19*SMALLCHAR_WIDTH;
control->right = 320 + 21*SMALLCHAR_WIDTH;
control->left = 200 - 19*SMALLCHAR_WIDTH;
control->right = 200 + 21*SMALLCHAR_WIDTH;
control->top = y;
control->bottom = y + SMALLCHAR_HEIGHT;
}
@ -668,7 +695,7 @@ static void Controls_Update( void ) {
((menucommon_s*)(s_controls.menu.items[s_controls.menu.cursor]))->flags &= ~QMF_GRAYED;
// don't gray out player's name
s_controls.name.generic.flags &= ~QMF_GRAYED;
//s_controls.name.generic.flags &= ~QMF_GRAYED;
return;
}
@ -679,19 +706,17 @@ static void Controls_Update( void ) {
}
// makes sure flags are right on the group selection controls
s_controls.looking.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
s_controls.movement.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
s_controls.weapons.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
s_controls.misc.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
//Blaze: Reaction stuff
s_controls.reaction.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
s_controls.looking.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.movement.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.weapons.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.misc.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.reaction.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.looking.generic.flags |= QMF_PULSEIFFOCUS;
s_controls.movement.generic.flags |= QMF_PULSEIFFOCUS;
s_controls.weapons.generic.flags |= QMF_PULSEIFFOCUS;
s_controls.misc.generic.flags |= QMF_PULSEIFFOCUS;
//Blaze: Reaction menu
s_controls.reaction.generic.flags |= QMF_PULSEIFFOCUS;
s_controls.looking.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.movement.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.weapons.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.misc.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.reaction.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
// set buttons
switch( s_controls.section ) {
@ -1127,91 +1152,126 @@ Controls_MenuEvent
*/
static void Controls_MenuEvent( void* ptr, int event )
{
switch (((menucommon_s*)ptr)->id)
//Elder: for status bar
if( event == QM_LOSTFOCUS ) {
s_controls.rq3_statustext.string = "";
return;
}
else if ( event == QM_GOTFOCUS )
{
case ID_MOVEMENT:
if (event == QM_ACTIVATED)
{
s_controls.section = C_MOVEMENT;
Controls_Update();
}
break;
switch( ((menucommon_s*)ptr)->id )
{
case ID_MOVEMENT:
s_controls.rq3_statustext.string = "Change movement keys";
break;
case ID_LOOKING:
s_controls.rq3_statustext.string = "Change view keys";
break;
case ID_WEAPONS:
s_controls.rq3_statustext.string = "Change weapon keys";
break;
case ID_MISC:
s_controls.rq3_statustext.string = "Change miscellaneous keys";
break;
case ID_REACTION:
s_controls.rq3_statustext.string = "Change Reaction-specific keys";
break;
case ID_BACK:
s_controls.rq3_statustext.string = "Return to setup menu";
break;
default:
s_controls.rq3_statustext.string = "";
break;
}
}
else if ( event == QM_ACTIVATED )
{
switch (((menucommon_s*)ptr)->id)
{
case ID_MOVEMENT:
//if (event == QM_ACTIVATED)
//{
s_controls.section = C_MOVEMENT;
Controls_Update();
//}
break;
case ID_LOOKING:
if (event == QM_ACTIVATED)
{
s_controls.section = C_LOOKING;
Controls_Update();
}
break;
case ID_LOOKING:
//if (event == QM_ACTIVATED)
//{
s_controls.section = C_LOOKING;
Controls_Update();
//}
break;
case ID_WEAPONS:
if (event == QM_ACTIVATED)
{
s_controls.section = C_WEAPONS;
Controls_Update();
}
break;
case ID_WEAPONS:
//if (event == QM_ACTIVATED)
//{
s_controls.section = C_WEAPONS;
Controls_Update();
//}
break;
case ID_MISC:
if (event == QM_ACTIVATED)
{
s_controls.section = C_MISC;
Controls_Update();
}
break;
//Blaze: Reaction Menu
case ID_REACTION:
if (event == QM_ACTIVATED)
{
s_controls.section = C_REACTION;
Controls_Update();
}
break;
case ID_DEFAULTS:
if (event == QM_ACTIVATED)
{
UI_ConfirmMenu( "SET TO DEFAULTS?", Controls_ResetDefaults_Draw, Controls_ResetDefaults_Action );
}
break;
case ID_MISC:
//if (event == QM_ACTIVATED)
//{
s_controls.section = C_MISC;
Controls_Update();
//}
break;
//Blaze: Reaction Menu
case ID_REACTION:
//if (event == QM_ACTIVATED)
//{
s_controls.section = C_REACTION;
Controls_Update();
//}
break;
case ID_DEFAULTS:
//if (event == QM_ACTIVATED)
//{
UI_ConfirmMenu( "SET TO DEFAULTS?", Controls_ResetDefaults_Draw, Controls_ResetDefaults_Action );
//}
break;
case ID_BACK:
if (event == QM_ACTIVATED)
{
if (s_controls.changesmade)
case ID_BACK:
//if (event == QM_ACTIVATED)
//{
if (s_controls.changesmade)
Controls_SetConfig();
UI_PopMenu();
//}
break;
case ID_SAVEANDEXIT:
//if (event == QM_ACTIVATED)
//{
Controls_SetConfig();
UI_PopMenu();
}
break;
UI_PopMenu();
//}
break;
case ID_SAVEANDEXIT:
if (event == QM_ACTIVATED)
{
Controls_SetConfig();
UI_PopMenu();
}
break;
case ID_EXIT:
//if (event == QM_ACTIVATED)
//{
UI_PopMenu();
//}
break;
case ID_EXIT:
if (event == QM_ACTIVATED)
{
UI_PopMenu();
}
break;
case ID_FREELOOK:
case ID_MOUSESPEED:
case ID_INVERTMOUSE:
case ID_SMOOTHMOUSE:
case ID_ALWAYSRUN:
case ID_AUTOSWITCH:
case ID_JOYENABLE:
case ID_JOYTHRESHOLD:
if (event == QM_ACTIVATED)
{
s_controls.changesmade = qtrue;
}
break;
case ID_FREELOOK:
case ID_MOUSESPEED:
case ID_INVERTMOUSE:
case ID_SMOOTHMOUSE:
case ID_ALWAYSRUN:
case ID_AUTOSWITCH:
case ID_JOYENABLE:
case ID_JOYTHRESHOLD:
//if (event == QM_ACTIVATED)
//{
s_controls.changesmade = qtrue;
//}
break;
}
}
}
@ -1293,6 +1353,9 @@ Controls_MenuInit
static void Controls_MenuInit( void )
{
static char playername[32];
// Elder: added
int buttonCount = 0;
int y = 12;
// zero set all our globals
memset( &s_controls, 0 ,sizeof(controls_t) );
@ -1389,6 +1452,17 @@ static void Controls_MenuInit( void )
s_controls.rq3_setuptitle.width = 256;
s_controls.rq3_setuptitle.height = 32;
//Elder: RQ3 Status Text
s_controls.rq3_statustext.generic.type = MTYPE_TEXT;
s_controls.rq3_statustext.generic.flags = QMF_CENTER_JUSTIFY;
s_controls.rq3_statustext.generic.x = RQ3_STATUSBAR_X;
s_controls.rq3_statustext.generic.y = RQ3_STATUSBAR_Y;
s_controls.rq3_statustext.string = "";
s_controls.rq3_statustext.style = UI_CENTER|UI_SMALLFONT;
s_controls.rq3_statustext.color = color_orange;
/*
s_controls.looking.generic.type = MTYPE_PTEXT;
s_controls.looking.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.looking.generic.id = ID_LOOKING;
@ -1398,7 +1472,21 @@ static void Controls_MenuInit( void )
s_controls.looking.string = "LOOK";
s_controls.looking.style = UI_RIGHT;
s_controls.looking.color = color_red;
*/
//Elder: RQ3 Looking Button
s_controls.looking.generic.type = MTYPE_BITMAP;
s_controls.looking.generic.name = RQ3_LOOKING_BUTTON;
s_controls.looking.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
s_controls.looking.generic.x = 320 + (RQ3_BUTTON_PADDING + RQ3_BUTTON_WIDTH) * buttonCount++;
s_controls.looking.generic.y = y;
s_controls.looking.generic.id = ID_LOOKING;
s_controls.looking.generic.callback = Controls_MenuEvent;
s_controls.looking.width = RQ3_BUTTON_WIDTH;
s_controls.looking.height = RQ3_BUTTON_HEIGHT;
s_controls.looking.focuspic = RQ3_FOCUS_BUTTON;
/*
s_controls.movement.generic.type = MTYPE_PTEXT;
s_controls.movement.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.movement.generic.id = ID_MOVEMENT;
@ -1408,7 +1496,21 @@ static void Controls_MenuInit( void )
s_controls.movement.string = "MOVE";
s_controls.movement.style = UI_RIGHT;
s_controls.movement.color = color_red;
*/
//Elder: RQ3 Movement Button
s_controls.movement.generic.type = MTYPE_BITMAP;
s_controls.movement.generic.name = RQ3_MOVEMENT_BUTTON;
s_controls.movement.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
s_controls.movement.generic.x = 320 + (RQ3_BUTTON_PADDING + RQ3_BUTTON_WIDTH) * buttonCount++;
s_controls.movement.generic.y = y;
s_controls.movement.generic.id = ID_MOVEMENT;
s_controls.movement.generic.callback = Controls_MenuEvent;
s_controls.movement.width = RQ3_BUTTON_WIDTH;
s_controls.movement.height = RQ3_BUTTON_HEIGHT;
s_controls.movement.focuspic = RQ3_FOCUS_BUTTON;
/*
s_controls.weapons.generic.type = MTYPE_PTEXT;
s_controls.weapons.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.weapons.generic.id = ID_WEAPONS;
@ -1418,7 +1520,21 @@ static void Controls_MenuInit( void )
s_controls.weapons.string = "SHOOT";
s_controls.weapons.style = UI_RIGHT;
s_controls.weapons.color = color_red;
*/
//Elder: RQ3 Weapons Button
s_controls.weapons.generic.type = MTYPE_BITMAP;
s_controls.weapons.generic.name = RQ3_WEAPONS_BUTTON;
s_controls.weapons.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
s_controls.weapons.generic.x = 320 + (RQ3_BUTTON_PADDING + RQ3_BUTTON_WIDTH) * buttonCount++;
s_controls.weapons.generic.y = y;
s_controls.weapons.generic.id = ID_WEAPONS;
s_controls.weapons.generic.callback = Controls_MenuEvent;
s_controls.weapons.width = RQ3_BUTTON_WIDTH;
s_controls.weapons.height = RQ3_BUTTON_HEIGHT;
s_controls.weapons.focuspic = RQ3_FOCUS_BUTTON;
/*
s_controls.misc.generic.type = MTYPE_PTEXT;
s_controls.misc.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.misc.generic.id = ID_MISC;
@ -1428,18 +1544,44 @@ static void Controls_MenuInit( void )
s_controls.misc.string = "MISC";
s_controls.misc.style = UI_RIGHT;
s_controls.misc.color = color_red;
*/
//Elder: RQ3 Misc Button
s_controls.misc.generic.type = MTYPE_BITMAP;
s_controls.misc.generic.name = RQ3_MISC_BUTTON;
s_controls.misc.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
s_controls.misc.generic.x = 320 + (RQ3_BUTTON_PADDING + RQ3_BUTTON_WIDTH) * buttonCount++;
s_controls.misc.generic.y = y;
s_controls.misc.generic.id = ID_MISC;
s_controls.misc.generic.callback = Controls_MenuEvent;
s_controls.misc.width = RQ3_BUTTON_WIDTH;
s_controls.misc.height = RQ3_BUTTON_HEIGHT;
s_controls.misc.focuspic = RQ3_FOCUS_BUTTON;
//Blaze: Reaction section
/*
s_controls.reaction.generic.type = MTYPE_PTEXT;
s_controls.reaction.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.reaction.generic.id = ID_REACTION;
s_controls.reaction.generic.callback = Controls_MenuEvent;
s_controls.reaction.generic.x = 152;
s_controls.reaction.generic.y = 240 + 2 * PROP_HEIGHT;
s_controls.reaction.string = "RXN";
s_controls.reaction.string = "REACTION";
s_controls.reaction.style = UI_RIGHT;
s_controls.reaction.color = color_red;
*/
//Elder: RQ3 Reaction Button
s_controls.reaction.generic.type = MTYPE_BITMAP;
s_controls.reaction.generic.name = RQ3_REACTION_BUTTON;
s_controls.reaction.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
s_controls.reaction.generic.x = 320 + (RQ3_BUTTON_PADDING + RQ3_BUTTON_WIDTH) * buttonCount++;
s_controls.reaction.generic.y = y;
s_controls.reaction.generic.id = ID_REACTION;
s_controls.reaction.generic.callback = Controls_MenuEvent;
s_controls.reaction.width = RQ3_BUTTON_WIDTH;
s_controls.reaction.height = RQ3_BUTTON_HEIGHT;
s_controls.reaction.focuspic = RQ3_FOCUS_BUTTON;
s_controls.back.generic.type = MTYPE_BITMAP;
s_controls.back.generic.name = ART_BACK0;
@ -1745,7 +1887,7 @@ static void Controls_MenuInit( void )
s_controls.reload.generic.id = ID_RELOAD;
s_controls.weapon.generic.type = MTYPE_ACTION;
s_controls.weapon.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.weapon.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN;
s_controls.weapon.generic.callback = Controls_ActionEvent;
s_controls.weapon.generic.ownerdraw = Controls_DrawKeyBinding;
s_controls.weapon.generic.id = ID_WEAPON;
@ -1786,6 +1928,7 @@ static void Controls_MenuInit( void )
s_controls.joythreshold.maxvalue = 0.75f;
s_controls.joythreshold.generic.statusbar = Controls_StatusBar;
/*
s_controls.name.generic.type = MTYPE_PTEXT;
s_controls.name.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE;
s_controls.name.generic.x = 320;
@ -1793,7 +1936,7 @@ static void Controls_MenuInit( void )
s_controls.name.string = playername;
s_controls.name.style = UI_CENTER;
s_controls.name.color = text_color_normal;
*/
// Menu_AddItem( &s_controls.menu, &s_controls.banner );
// Menu_AddItem( &s_controls.menu, &s_controls.framel );
// Menu_AddItem( &s_controls.menu, &s_controls.framer );
@ -1806,9 +1949,10 @@ static void Controls_MenuInit( void )
*/
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.rq3_statustext);
Menu_AddItem( &s_controls.menu, &s_controls.player );
Menu_AddItem( &s_controls.menu, &s_controls.name );
//Menu_AddItem( &s_controls.menu, &s_controls.name );
Menu_AddItem( &s_controls.menu, &s_controls.looking );
Menu_AddItem( &s_controls.menu, &s_controls.movement );
@ -1878,8 +2022,8 @@ static void Controls_MenuInit( void )
Menu_AddItem( &s_controls.menu, &s_controls.back );
trap_Cvar_VariableStringBuffer( "name", s_controls.name.string, 16 );
Q_CleanStr( s_controls.name.string );
//trap_Cvar_VariableStringBuffer( "name", s_controls.name.string, 16 );
//Q_CleanStr( s_controls.name.string );
// initialize the configurable cvars
Controls_InitCvars();
@ -1911,6 +2055,12 @@ void Controls_Cache( void ) {
trap_R_RegisterShaderNoMip( ART_BACK1 );
trap_R_RegisterShaderNoMip( RQ3_SETUP_ICON );
trap_R_RegisterShaderNoMip( RQ3_SETUP_TITLE );
trap_R_RegisterShaderNoMip( RQ3_LOOKING_BUTTON );
trap_R_RegisterShaderNoMip( RQ3_MOVEMENT_BUTTON );
trap_R_RegisterShaderNoMip( RQ3_WEAPONS_BUTTON );
trap_R_RegisterShaderNoMip( RQ3_MISC_BUTTON );
trap_R_RegisterShaderNoMip( RQ3_REACTION_BUTTON );
trap_R_RegisterShaderNoMip( RQ3_FOCUS_BUTTON );
//trap_R_RegisterShaderNoMip( ART_FRAMEL );
//trap_R_RegisterShaderNoMip( ART_FRAMER );
}

View file

@ -12,7 +12,7 @@ INGAME MENU
#include "ui_local.h"
#define INGAME_FRAME "menu/art/addbotframe"
//#define INGAME_FRAME "menu/art/addbotframe"
//#define INGAME_FRAME "menu/art/cut_frame"
#define INGAME_MENU_VERTICAL_SPACING 28
@ -31,7 +31,7 @@ INGAME MENU
typedef struct {
menuframework_s menu;
menubitmap_s frame;
//menubitmap_s frame;
menutext_s team;
menutext_s setup;
menutext_s server;
@ -151,6 +151,7 @@ void InGame_MenuInit( void ) {
s_ingame.menu.wrapAround = qtrue;
s_ingame.menu.fullscreen = qfalse;//Blaze: Test
/*
s_ingame.frame.generic.type = MTYPE_BITMAP;
s_ingame.frame.generic.flags = QMF_INACTIVE;
s_ingame.frame.generic.name = INGAME_FRAME;
@ -158,6 +159,7 @@ void InGame_MenuInit( void ) {
s_ingame.frame.generic.y = 240-166;//118;
s_ingame.frame.width = 466;//359;
s_ingame.frame.height = 332;//256;
*/
//y = 96;
y = 88;
@ -290,7 +292,7 @@ void InGame_MenuInit( void ) {
s_ingame.quit.color = color_red;
s_ingame.quit.style = UI_CENTER|UI_SMALLFONT;
Menu_AddItem( &s_ingame.menu, &s_ingame.frame );
//Menu_AddItem( &s_ingame.menu, &s_ingame.frame );
Menu_AddItem( &s_ingame.menu, &s_ingame.team );
Menu_AddItem( &s_ingame.menu, &s_ingame.addbots );
Menu_AddItem( &s_ingame.menu, &s_ingame.removebots );
@ -310,7 +312,7 @@ InGame_Cache
=================
*/
void InGame_Cache( void ) {
trap_R_RegisterShaderNoMip( INGAME_FRAME );
//trap_R_RegisterShaderNoMip( INGAME_FRAME );
}

View file

@ -204,7 +204,7 @@ static void Preferences_Event( void* ptr, int event ) {
break;
case ID_BACK:
s_preferences.rq3_statustext.string = "Return to main menu";
s_preferences.rq3_statustext.string = "Return to setup menu";
break;
default:

View file

@ -23,8 +23,11 @@ MULTIPLAYER MENU (SERVER BROWSER)
#define MAX_LEAGUELENGTH 28
#define MAX_LISTBOXWIDTH 61
#define ART_BACK0 "menu/art/back_0"
#define ART_BACK1 "menu/art/back_1"
//#define ART_BACK0 "menu/art/back_0"
//#define ART_BACK1 "menu/art/back_1"
#define ART_BACK0 "menu/art/rq3-menu-back.tga"
#define ART_BACK1 "menu/art/rq3-menu-back-focus.tga"
#define ART_CREATE0 "menu/art/create_0"
#define ART_CREATE1 "menu/art/create_1"
#define ART_SPECIFY0 "menu/art/specify_0"
@ -40,6 +43,10 @@ MULTIPLAYER MENU (SERVER BROWSER)
#define ART_REMOVE0 "menu/art/delete_0"
#define ART_REMOVE1 "menu/art/delete_1"
//Elder: RQ3 Setup assets
#define RQ3_START_ICON "menu/art/rq3-menu-start.jpg"
#define RQ3_START_TITLE "menu/art/rq3-title-start.jpg"
#define ID_MASTER 10
#define ID_GAMETYPE 11
#define ID_SORTKEY 12
@ -157,11 +164,17 @@ typedef struct {
//Blaze: No need for this banner
//menutext_s banner;
/*
menutext_s multim;
menutext_s setupm;
menutext_s demom;
menutext_s modsm;
menutext_s exitm;
*/
//Elder: RQ3 Stuff
menubitmap_s rq3_starticon;
menubitmap_s rq3_starttitle;
menulist_s master;
menulist_s gametype;
@ -1216,9 +1229,17 @@ ArenaServers_MenuDraw
*/
static void ArenaServers_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);
if (g_arenaservers.refreshservers)
ArenaServers_DoRefresh();
Menu_Draw( &g_arenaservers.menu );
}
@ -1283,6 +1304,7 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.banner.style = UI_CENTER;
g_arenaservers.banner.color = color_white;
*/
/*
g_arenaservers.multim.generic.type = MTYPE_PTEXT;
g_arenaservers.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE|QMF_HIGHLIGHT;
g_arenaservers.multim.generic.x = 120;
@ -1322,6 +1344,25 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.exitm.string = "EXIT";
g_arenaservers.exitm.color = color_red;
g_arenaservers.exitm.style = UI_CENTER | UI_DROPSHADOW;
*/
//Elder: Info for setup icon
g_arenaservers.rq3_starticon.generic.type = MTYPE_BITMAP;
g_arenaservers.rq3_starticon.generic.name = RQ3_START_ICON;
g_arenaservers.rq3_starticon.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
g_arenaservers.rq3_starticon.generic.x = 0;
g_arenaservers.rq3_starticon.generic.y = 4;
g_arenaservers.rq3_starticon.width = RQ3_ICON_WIDTH;
g_arenaservers.rq3_starticon.height = RQ3_ICON_HEIGHT;
//Elder: Info for setup title
g_arenaservers.rq3_starttitle.generic.type = MTYPE_BITMAP;
g_arenaservers.rq3_starttitle.generic.name = RQ3_START_TITLE;
g_arenaservers.rq3_starttitle.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
g_arenaservers.rq3_starttitle.generic.x = 64;
g_arenaservers.rq3_starttitle.generic.y = 12;
g_arenaservers.rq3_starttitle.width = 256;
g_arenaservers.rq3_starttitle.height = 32;
y = 80;
g_arenaservers.master.generic.type = MTYPE_SPINCONTROL;
@ -1454,10 +1495,10 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
g_arenaservers.back.generic.callback = ArenaServers_Event;
g_arenaservers.back.generic.id = ID_BACK;
g_arenaservers.back.generic.x = 0;
g_arenaservers.back.generic.y = 480-64;
g_arenaservers.back.width = 128;
g_arenaservers.back.height = 64;
g_arenaservers.back.generic.x = 8;
g_arenaservers.back.generic.y = 480-44;
g_arenaservers.back.width = 32;
g_arenaservers.back.height = 32;
g_arenaservers.back.focuspic = ART_BACK1;
g_arenaservers.specify.generic.type = MTYPE_BITMAP;
@ -1466,9 +1507,9 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.specify.generic.callback = ArenaServers_Event;
g_arenaservers.specify.generic.id = ID_SPECIFY;
g_arenaservers.specify.generic.x = 128;
g_arenaservers.specify.generic.y = 480-64;
g_arenaservers.specify.width = 128;
g_arenaservers.specify.height = 64;
g_arenaservers.specify.generic.y = 480-44;
g_arenaservers.specify.width = 64;
g_arenaservers.specify.height = 32;
g_arenaservers.specify.focuspic = ART_SPECIFY1;
g_arenaservers.refresh.generic.type = MTYPE_BITMAP;
@ -1477,9 +1518,9 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.refresh.generic.callback = ArenaServers_Event;
g_arenaservers.refresh.generic.id = ID_REFRESH;
g_arenaservers.refresh.generic.x = 256;
g_arenaservers.refresh.generic.y = 480-64;
g_arenaservers.refresh.width = 128;
g_arenaservers.refresh.height = 64;
g_arenaservers.refresh.generic.y = 480-44;
g_arenaservers.refresh.width = 64;
g_arenaservers.refresh.height = 32;
g_arenaservers.refresh.focuspic = ART_REFRESH1;
g_arenaservers.create.generic.type = MTYPE_BITMAP;
@ -1488,9 +1529,9 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.create.generic.callback = ArenaServers_Event;
g_arenaservers.create.generic.id = ID_CREATE;
g_arenaservers.create.generic.x = 384;
g_arenaservers.create.generic.y = 480-64;
g_arenaservers.create.width = 128;
g_arenaservers.create.height = 64;
g_arenaservers.create.generic.y = 480-44;
g_arenaservers.create.width = 64;
g_arenaservers.create.height = 32;
g_arenaservers.create.focuspic = ART_CREATE1;
g_arenaservers.go.generic.type = MTYPE_BITMAP;
@ -1498,19 +1539,24 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.go.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
g_arenaservers.go.generic.callback = ArenaServers_Event;
g_arenaservers.go.generic.id = ID_CONNECT;
g_arenaservers.go.generic.x = 640;
g_arenaservers.go.generic.y = 480-64;
g_arenaservers.go.width = 128;
g_arenaservers.go.height = 64;
g_arenaservers.go.generic.x = 640 - 8;
g_arenaservers.go.generic.y = 480-44;
g_arenaservers.go.width = 64;
g_arenaservers.go.height = 32;
g_arenaservers.go.focuspic = ART_CONNECT1;
//Blaze: This banner is not needed
// Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.banner );
/*
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.multim );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.setupm );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.demom );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.modsm );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.exitm );
*/
Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.rq3_starticon );
Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.rq3_starttitle );
Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.master );
Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.gametype );
@ -1579,6 +1625,8 @@ void ArenaServers_Cache( void ) {
trap_R_RegisterShaderNoMip( ART_ARROWS_UP );
trap_R_RegisterShaderNoMip( ART_ARROWS_DOWN );
trap_R_RegisterShaderNoMip( ART_UNKNOWNMAP );
trap_R_RegisterShaderNoMip( RQ3_START_ICON );
trap_R_RegisterShaderNoMip( RQ3_START_TITLE );
}

View file

@ -6,20 +6,27 @@
SPECIFY SERVER
*********************************************************************************/
#define SPECIFYSERVER_FRAMEL "menu/art/frame2_l"
#define SPECIFYSERVER_FRAMER "menu/art/frame1_r"
#define SPECIFYSERVER_BACK0 "menu/art/back_0"
#define SPECIFYSERVER_BACK1 "menu/art/back_1"
//#define SPECIFYSERVER_FRAMEL "menu/art/frame2_l"
//#define SPECIFYSERVER_FRAMER "menu/art/frame1_r"
//#define SPECIFYSERVER_BACK0 "menu/art/back_0"
//#define SPECIFYSERVER_BACK1 "menu/art/back_1"
#define SPECIFYSERVER_BACK0 "menu/art/rq3-menu-back.tga"
#define SPECIFYSERVER_BACK1 "menu/art/rq3-menu-back-focus.tga"
#define SPECIFYSERVER_FIGHT0 "menu/art/fight_0"
#define SPECIFYSERVER_FIGHT1 "menu/art/fight_1"
//Elder: RQ3 Setup assets
#define RQ3_START_ICON "menu/art/rq3-menu-start.jpg"
#define RQ3_START_TITLE "menu/art/rq3-title-start.jpg"
#define ID_SPECIFYSERVERBACK 102
#define ID_SPECIFYSERVERGO 103
static char* specifyserver_artlist[] =
{
SPECIFYSERVER_FRAMEL,
SPECIFYSERVER_FRAMER,
//SPECIFYSERVER_FRAMEL,
//SPECIFYSERVER_FRAMER,
SPECIFYSERVER_BACK0,
SPECIFYSERVER_BACK1,
SPECIFYSERVER_FIGHT0,
@ -34,11 +41,18 @@ 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;
*/
//Elder: RQ3 Stuff
menubitmap_s rq3_starticon;
menubitmap_s rq3_starttitle;
menufield_s domain;
menufield_s port;
@ -48,6 +62,26 @@ typedef struct
static specifyserver_t s_specifyserver;
/*
===============
Added by Elder
Preferences_MenuDraw
===============
*/
static void SpecifyServer_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_specifyserver.menu );
}
/*
=================
SpecifyServer_Event
@ -94,6 +128,7 @@ void SpecifyServer_MenuInit( void )
SpecifyServer_Cache();
s_specifyserver.menu.draw = SpecifyServer_MenuDraw;
s_specifyserver.menu.wrapAround = qtrue;
s_specifyserver.menu.fullscreen = qtrue;
s_specifyserver.menu.showlogo = qtrue;
@ -124,6 +159,7 @@ void SpecifyServer_MenuInit( void )
s_specifyserver.framer.width = 256;
s_specifyserver.framer.height = 334;
*/
/*
s_specifyserver.multim.generic.type = MTYPE_PTEXT;
s_specifyserver.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE|QMF_HIGHLIGHT;
s_specifyserver.multim.generic.x = 120;
@ -164,8 +200,28 @@ void SpecifyServer_MenuInit( void )
s_specifyserver.exitm.string = "EXIT";
s_specifyserver.exitm.color = color_red;
s_specifyserver.exitm.style = UI_CENTER | UI_DROPSHADOW;
*/
s_specifyserver.domain.generic.type = MTYPE_FIELD;
//Elder: Info for setup icon
s_specifyserver.rq3_starticon.generic.type = MTYPE_BITMAP;
s_specifyserver.rq3_starticon.generic.name = RQ3_START_ICON;
s_specifyserver.rq3_starticon.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
s_specifyserver.rq3_starticon.generic.x = 0;
s_specifyserver.rq3_starticon.generic.y = 4;
s_specifyserver.rq3_starticon.width = RQ3_ICON_WIDTH;
s_specifyserver.rq3_starticon.height = RQ3_ICON_HEIGHT;
//Elder: Info for setup title
s_specifyserver.rq3_starttitle.generic.type = MTYPE_BITMAP;
s_specifyserver.rq3_starttitle.generic.name = RQ3_START_TITLE;
s_specifyserver.rq3_starttitle.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE;
s_specifyserver.rq3_starttitle.generic.x = 64;
s_specifyserver.rq3_starttitle.generic.y = 12;
s_specifyserver.rq3_starttitle.width = 256;
s_specifyserver.rq3_starttitle.height = 32;
s_specifyserver.domain.generic.type = MTYPE_FIELD;
s_specifyserver.domain.generic.name = "Address:";
s_specifyserver.domain.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_specifyserver.domain.generic.x = 206;
@ -186,10 +242,10 @@ s_specifyserver.domain.generic.type = MTYPE_FIELD;
s_specifyserver.go.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_specifyserver.go.generic.callback = SpecifyServer_Event;
s_specifyserver.go.generic.id = ID_SPECIFYSERVERGO;
s_specifyserver.go.generic.x = 640;
s_specifyserver.go.generic.y = 480-64;
s_specifyserver.go.width = 128;
s_specifyserver.go.height = 64;
s_specifyserver.go.generic.x = 640-8;
s_specifyserver.go.generic.y = 480-44;
s_specifyserver.go.width = 64;
s_specifyserver.go.height = 32;
s_specifyserver.go.focuspic = SPECIFYSERVER_FIGHT1;
s_specifyserver.back.generic.type = MTYPE_BITMAP;
@ -197,22 +253,26 @@ s_specifyserver.domain.generic.type = MTYPE_FIELD;
s_specifyserver.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
s_specifyserver.back.generic.callback = SpecifyServer_Event;
s_specifyserver.back.generic.id = ID_SPECIFYSERVERBACK;
s_specifyserver.back.generic.x = 0;
s_specifyserver.back.generic.y = 480-64;
s_specifyserver.back.width = 128;
s_specifyserver.back.height = 64;
s_specifyserver.back.generic.x = 8;
s_specifyserver.back.generic.y = 480-44;
s_specifyserver.back.width = 32;
s_specifyserver.back.height = 32;
s_specifyserver.back.focuspic = SPECIFYSERVER_BACK1;
//Blaze: This banner is not needed
//Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.banner );
//Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.framel );
//Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.framer );
/*
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.multim );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.setupm );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.demom );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.modsm );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.exitm );
*/
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.rq3_starticon );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.rq3_starttitle );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.domain );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.port );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.go );

View file

@ -50,11 +50,13 @@ 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;
*/
menulist_s gametype;
menubitmap_s mappics[MAX_MAPSPERPAGE];
@ -404,6 +406,7 @@ static void StartServer_MenuInit( void ) {
s_startserver.framer.width = 256;
s_startserver.framer.height = 334;
*/
/*
s_startserver.multim.generic.type = MTYPE_PTEXT;
s_startserver.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE|QMF_HIGHLIGHT;
s_startserver.multim.generic.x = 120;
@ -443,6 +446,7 @@ static void StartServer_MenuInit( void ) {
s_startserver.exitm.string = "EXIT";
s_startserver.exitm.color = color_red;
s_startserver.exitm.style = UI_CENTER | UI_DROPSHADOW;
*/
s_startserver.gametype.generic.type = MTYPE_SPINCONTROL;
s_startserver.gametype.generic.name = "Game Type:";
@ -553,11 +557,13 @@ static void StartServer_MenuInit( void ) {
// Menu_AddItem( &s_startserver.menu, &s_startserver.banner );
// Menu_AddItem( &s_startserver.menu, &s_startserver.framel );
// Menu_AddItem( &s_startserver.menu, &s_startserver.framer );
/*
Menu_AddItem( &s_startserver.menu, &s_startserver.multim );
Menu_AddItem( &s_startserver.menu, &s_startserver.setupm );
Menu_AddItem( &s_startserver.menu, &s_startserver.demom );
Menu_AddItem( &s_startserver.menu, &s_startserver.modsm );
Menu_AddItem( &s_startserver.menu, &s_startserver.exitm );
*/
Menu_AddItem( &s_startserver.menu, &s_startserver.gametype );
for (i=0; i<MAX_MAPSPERPAGE; i++)
@ -594,8 +600,8 @@ void StartServer_Cache( void )
trap_R_RegisterShaderNoMip( GAMESERVER_BACK1 );
trap_R_RegisterShaderNoMip( GAMESERVER_NEXT0 );
trap_R_RegisterShaderNoMip( GAMESERVER_NEXT1 );
trap_R_RegisterShaderNoMip( GAMESERVER_FRAMEL );
trap_R_RegisterShaderNoMip( GAMESERVER_FRAMER );
//trap_R_RegisterShaderNoMip( GAMESERVER_FRAMEL );
//trap_R_RegisterShaderNoMip( GAMESERVER_FRAMER );
trap_R_RegisterShaderNoMip( GAMESERVER_SELECT );
trap_R_RegisterShaderNoMip( GAMESERVER_SELECTED );
trap_R_RegisterShaderNoMip( GAMESERVER_UNKNOWNMAP );