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 //Elder: RQ3 Setup assets
#define RQ3_SETUP_ICON "menu/art/rq3-setup-controls.jpg" #define RQ3_SETUP_ICON "menu/art/rq3-setup-controls.jpg"
#define RQ3_SETUP_TITLE "menu/art/rq3-title-setup.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 { typedef struct {
@ -172,15 +178,23 @@ typedef struct
//Elder: RQ3 Stuff //Elder: RQ3 Stuff
menubitmap_s rq3_setupicon; menubitmap_s rq3_setupicon;
menubitmap_s rq3_setuptitle; menubitmap_s rq3_setuptitle;
menutext_s rq3_statustext;
menubitmap_s player; menubitmap_s player;
/*
menutext_s movement; menutext_s movement;
menutext_s looking; menutext_s looking;
menutext_s weapons; menutext_s weapons;
menutext_s misc; menutext_s misc;
*/
menubitmap_s movement;
menubitmap_s looking;
menubitmap_s weapons;
menubitmap_s misc;
//Blaze: Reaction Menu //Blaze: Reaction Menu
menutext_s reaction; menubitmap_s reaction;
menuaction_s walkforward; menuaction_s walkforward;
menuaction_s backpedal; menuaction_s backpedal;
@ -279,14 +293,14 @@ static bind_t g_bindings[] =
//Blaze: Reaction Weapon binds //Blaze: Reaction Weapon binds
//Jbravo: order is important. //Jbravo: order is important.
{"weapon 1", "MK23 Pistol", ID_WEAPON1, ANIM_WEAPON1, '1', -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 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 3", "MP5/10 Submachinegun", ID_WEAPON3, ANIM_WEAPON3, '3', -1, -1, -1},
{"weapon 4", "Handcannon", ID_WEAPON4, ANIM_WEAPON4, '4', -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 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 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 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 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 9", "M26 Frag Grenade", ID_WEAPON9, ANIM_WEAPON9, '9', -1, -1, -1},
{"+attack", "attack", ID_ATTACK, ANIM_ATTACK, K_CTRL, -1, -1, -1}, {"+attack", "attack", ID_ATTACK, ANIM_ATTACK, K_CTRL, -1, -1, -1},
{"weapprev", "prev weapon", ID_WEAPPREV, ANIM_IDLE, '[', -1, -1, -1}, {"weapprev", "prev weapon", ID_WEAPPREV, ANIM_IDLE, '[', -1, -1, -1},
{"weapnext", "next weapon", ID_WEAPNEXT, ANIM_IDLE, ']', -1, -1, -1}, {"weapnext", "next weapon", ID_WEAPNEXT, ANIM_IDLE, ']', -1, -1, -1},
@ -551,42 +565,55 @@ static void Controls_UpdateModel( int anim ) {
*/ */
//Blaze: Reaction weapons //Blaze: Reaction weapons
case ANIM_WEAPON1: case ANIM_WEAPON1:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_PISTOL; s_controls.playerWeapon = WP_PISTOL;
break; break;
case ANIM_WEAPON2: case ANIM_WEAPON2:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_M3; s_controls.playerWeapon = WP_M3;
break; break;
case ANIM_WEAPON3: case ANIM_WEAPON3:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_MP5; s_controls.playerWeapon = WP_MP5;
break; break;
case ANIM_WEAPON4: case ANIM_WEAPON4:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_HANDCANNON; s_controls.playerWeapon = WP_HANDCANNON;
break; break;
case ANIM_WEAPON5: case ANIM_WEAPON5:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_SSG3000; s_controls.playerWeapon = WP_SSG3000;
break; break;
case ANIM_WEAPON6: case ANIM_WEAPON6:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_M4; s_controls.playerWeapon = WP_M4;
break; break;
case ANIM_WEAPON7: case ANIM_WEAPON7:
s_controls.playerTorso = TORSO_STAND;
s_controls.playerWeapon = WP_AKIMBO; s_controls.playerWeapon = WP_AKIMBO;
break; break;
case ANIM_WEAPON8: case ANIM_WEAPON8:
s_controls.playerTorso = TORSO_STAND2;
s_controls.playerWeapon = WP_KNIFE; s_controls.playerWeapon = WP_KNIFE;
break; break;
case ANIM_WEAPON9: case ANIM_WEAPON9:
s_controls.playerTorso = TORSO_STAND2;
s_controls.playerWeapon = WP_GRENADE; s_controls.playerWeapon = WP_GRENADE;
break; break;
case ANIM_ATTACK: case ANIM_ATTACK:
if ( s_controls.playerWeapon == WP_GRENADE ||
s_controls.playerWeapon == WP_KNIFE )
s_controls.playerTorso = TORSO_ATTACK2;
else
s_controls.playerTorso = TORSO_ATTACK; s_controls.playerTorso = TORSO_ATTACK;
break; break;
@ -650,10 +677,10 @@ static void Controls_Update( void ) {
// bk001204 - parentheses // bk001204 - parentheses
for( j = 0; (control = controls[j]) ; j++, y += SMALLCHAR_HEIGHT ) { for( j = 0; (control = controls[j]) ; j++, y += SMALLCHAR_HEIGHT ) {
//Elder: changed from 320 //Elder: changed from 320
control->x = 320; control->x = 200;
control->y = y; control->y = y;
control->left = 320 - 19*SMALLCHAR_WIDTH; control->left = 200 - 19*SMALLCHAR_WIDTH;
control->right = 320 + 21*SMALLCHAR_WIDTH; control->right = 200 + 21*SMALLCHAR_WIDTH;
control->top = y; control->top = y;
control->bottom = y + SMALLCHAR_HEIGHT; 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; ((menucommon_s*)(s_controls.menu.items[s_controls.menu.cursor]))->flags &= ~QMF_GRAYED;
// don't gray out player's name // don't gray out player's name
s_controls.name.generic.flags &= ~QMF_GRAYED; //s_controls.name.generic.flags &= ~QMF_GRAYED;
return; return;
} }
@ -679,19 +706,17 @@ static void Controls_Update( void ) {
} }
// makes sure flags are right on the group selection controls // 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.looking.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.movement.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS); s_controls.movement.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.weapons.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS); s_controls.weapons.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.misc.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS); s_controls.misc.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
//Blaze: Reaction stuff s_controls.reaction.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_PULSEIFFOCUS);
s_controls.reaction.generic.flags &= ~(QMF_GRAYED|QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
s_controls.looking.generic.flags |= QMF_PULSEIFFOCUS; s_controls.looking.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.movement.generic.flags |= QMF_PULSEIFFOCUS; s_controls.movement.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.weapons.generic.flags |= QMF_PULSEIFFOCUS; s_controls.weapons.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.misc.generic.flags |= QMF_PULSEIFFOCUS; s_controls.misc.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
//Blaze: Reaction menu s_controls.reaction.generic.flags |= QMF_HIGHLIGHT_IF_FOCUS;
s_controls.reaction.generic.flags |= QMF_PULSEIFFOCUS;
// set buttons // set buttons
switch( s_controls.section ) { switch( s_controls.section ) {
@ -1127,76 +1152,110 @@ Controls_MenuEvent
*/ */
static void Controls_MenuEvent( void* ptr, int event ) static void Controls_MenuEvent( void* ptr, int event )
{ {
//Elder: for status bar
if( event == QM_LOSTFOCUS ) {
s_controls.rq3_statustext.string = "";
return;
}
else if ( event == QM_GOTFOCUS )
{
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) switch (((menucommon_s*)ptr)->id)
{ {
case ID_MOVEMENT: case ID_MOVEMENT:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
s_controls.section = C_MOVEMENT; s_controls.section = C_MOVEMENT;
Controls_Update(); Controls_Update();
} //}
break; break;
case ID_LOOKING: case ID_LOOKING:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
s_controls.section = C_LOOKING; s_controls.section = C_LOOKING;
Controls_Update(); Controls_Update();
} //}
break; break;
case ID_WEAPONS: case ID_WEAPONS:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
s_controls.section = C_WEAPONS; s_controls.section = C_WEAPONS;
Controls_Update(); Controls_Update();
} //}
break; break;
case ID_MISC: case ID_MISC:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
s_controls.section = C_MISC; s_controls.section = C_MISC;
Controls_Update(); Controls_Update();
} //}
break; break;
//Blaze: Reaction Menu //Blaze: Reaction Menu
case ID_REACTION: case ID_REACTION:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
s_controls.section = C_REACTION; s_controls.section = C_REACTION;
Controls_Update(); Controls_Update();
} //}
break; break;
case ID_DEFAULTS: case ID_DEFAULTS:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
UI_ConfirmMenu( "SET TO DEFAULTS?", Controls_ResetDefaults_Draw, Controls_ResetDefaults_Action ); UI_ConfirmMenu( "SET TO DEFAULTS?", Controls_ResetDefaults_Draw, Controls_ResetDefaults_Action );
} //}
break; break;
case ID_BACK: case ID_BACK:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
if (s_controls.changesmade) if (s_controls.changesmade)
Controls_SetConfig(); Controls_SetConfig();
UI_PopMenu(); UI_PopMenu();
} //}
break; break;
case ID_SAVEANDEXIT: case ID_SAVEANDEXIT:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
Controls_SetConfig(); Controls_SetConfig();
UI_PopMenu(); UI_PopMenu();
} //}
break; break;
case ID_EXIT: case ID_EXIT:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
UI_PopMenu(); UI_PopMenu();
} //}
break; break;
case ID_FREELOOK: case ID_FREELOOK:
@ -1207,12 +1266,13 @@ static void Controls_MenuEvent( void* ptr, int event )
case ID_AUTOSWITCH: case ID_AUTOSWITCH:
case ID_JOYENABLE: case ID_JOYENABLE:
case ID_JOYTHRESHOLD: case ID_JOYTHRESHOLD:
if (event == QM_ACTIVATED) //if (event == QM_ACTIVATED)
{ //{
s_controls.changesmade = qtrue; s_controls.changesmade = qtrue;
} //}
break; break;
} }
}
} }
/* /*
@ -1293,6 +1353,9 @@ Controls_MenuInit
static void Controls_MenuInit( void ) static void Controls_MenuInit( void )
{ {
static char playername[32]; static char playername[32];
// Elder: added
int buttonCount = 0;
int y = 12;
// zero set all our globals // zero set all our globals
memset( &s_controls, 0 ,sizeof(controls_t) ); 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.width = 256;
s_controls.rq3_setuptitle.height = 32; 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.type = MTYPE_PTEXT;
s_controls.looking.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.looking.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.looking.generic.id = ID_LOOKING; s_controls.looking.generic.id = ID_LOOKING;
@ -1398,7 +1472,21 @@ static void Controls_MenuInit( void )
s_controls.looking.string = "LOOK"; s_controls.looking.string = "LOOK";
s_controls.looking.style = UI_RIGHT; s_controls.looking.style = UI_RIGHT;
s_controls.looking.color = color_red; 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.type = MTYPE_PTEXT;
s_controls.movement.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.movement.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.movement.generic.id = ID_MOVEMENT; s_controls.movement.generic.id = ID_MOVEMENT;
@ -1408,7 +1496,21 @@ static void Controls_MenuInit( void )
s_controls.movement.string = "MOVE"; s_controls.movement.string = "MOVE";
s_controls.movement.style = UI_RIGHT; s_controls.movement.style = UI_RIGHT;
s_controls.movement.color = color_red; 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.type = MTYPE_PTEXT;
s_controls.weapons.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.weapons.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.weapons.generic.id = ID_WEAPONS; s_controls.weapons.generic.id = ID_WEAPONS;
@ -1418,7 +1520,21 @@ static void Controls_MenuInit( void )
s_controls.weapons.string = "SHOOT"; s_controls.weapons.string = "SHOOT";
s_controls.weapons.style = UI_RIGHT; s_controls.weapons.style = UI_RIGHT;
s_controls.weapons.color = color_red; 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.type = MTYPE_PTEXT;
s_controls.misc.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.misc.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.misc.generic.id = ID_MISC; s_controls.misc.generic.id = ID_MISC;
@ -1428,18 +1544,44 @@ static void Controls_MenuInit( void )
s_controls.misc.string = "MISC"; s_controls.misc.string = "MISC";
s_controls.misc.style = UI_RIGHT; s_controls.misc.style = UI_RIGHT;
s_controls.misc.color = color_red; 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 //Blaze: Reaction section
/*
s_controls.reaction.generic.type = MTYPE_PTEXT; s_controls.reaction.generic.type = MTYPE_PTEXT;
s_controls.reaction.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.reaction.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_controls.reaction.generic.id = ID_REACTION; s_controls.reaction.generic.id = ID_REACTION;
s_controls.reaction.generic.callback = Controls_MenuEvent; s_controls.reaction.generic.callback = Controls_MenuEvent;
s_controls.reaction.generic.x = 152; s_controls.reaction.generic.x = 152;
s_controls.reaction.generic.y = 240 + 2 * PROP_HEIGHT; 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.style = UI_RIGHT;
s_controls.reaction.color = color_red; 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.type = MTYPE_BITMAP;
s_controls.back.generic.name = ART_BACK0; s_controls.back.generic.name = ART_BACK0;
@ -1786,6 +1928,7 @@ static void Controls_MenuInit( void )
s_controls.joythreshold.maxvalue = 0.75f; s_controls.joythreshold.maxvalue = 0.75f;
s_controls.joythreshold.generic.statusbar = Controls_StatusBar; s_controls.joythreshold.generic.statusbar = Controls_StatusBar;
/*
s_controls.name.generic.type = MTYPE_PTEXT; s_controls.name.generic.type = MTYPE_PTEXT;
s_controls.name.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE; s_controls.name.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE;
s_controls.name.generic.x = 320; s_controls.name.generic.x = 320;
@ -1793,7 +1936,7 @@ static void Controls_MenuInit( void )
s_controls.name.string = playername; s_controls.name.string = playername;
s_controls.name.style = UI_CENTER; s_controls.name.style = UI_CENTER;
s_controls.name.color = text_color_normal; s_controls.name.color = text_color_normal;
*/
// Menu_AddItem( &s_controls.menu, &s_controls.banner ); // Menu_AddItem( &s_controls.menu, &s_controls.banner );
// Menu_AddItem( &s_controls.menu, &s_controls.framel ); // Menu_AddItem( &s_controls.menu, &s_controls.framel );
// Menu_AddItem( &s_controls.menu, &s_controls.framer ); // 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_setupicon );
Menu_AddItem( &s_controls.menu, &s_controls.rq3_setuptitle ); 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.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.looking );
Menu_AddItem( &s_controls.menu, &s_controls.movement ); 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 ); Menu_AddItem( &s_controls.menu, &s_controls.back );
trap_Cvar_VariableStringBuffer( "name", s_controls.name.string, 16 ); //trap_Cvar_VariableStringBuffer( "name", s_controls.name.string, 16 );
Q_CleanStr( s_controls.name.string ); //Q_CleanStr( s_controls.name.string );
// initialize the configurable cvars // initialize the configurable cvars
Controls_InitCvars(); Controls_InitCvars();
@ -1911,6 +2055,12 @@ void Controls_Cache( void ) {
trap_R_RegisterShaderNoMip( ART_BACK1 ); trap_R_RegisterShaderNoMip( ART_BACK1 );
trap_R_RegisterShaderNoMip( RQ3_SETUP_ICON ); trap_R_RegisterShaderNoMip( RQ3_SETUP_ICON );
trap_R_RegisterShaderNoMip( RQ3_SETUP_TITLE ); 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_FRAMEL );
//trap_R_RegisterShaderNoMip( ART_FRAMER ); //trap_R_RegisterShaderNoMip( ART_FRAMER );
} }

View file

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

View file

@ -23,8 +23,11 @@ MULTIPLAYER MENU (SERVER BROWSER)
#define MAX_LEAGUELENGTH 28 #define MAX_LEAGUELENGTH 28
#define MAX_LISTBOXWIDTH 61 #define MAX_LISTBOXWIDTH 61
#define ART_BACK0 "menu/art/back_0" //#define ART_BACK0 "menu/art/back_0"
#define ART_BACK1 "menu/art/back_1" //#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_CREATE0 "menu/art/create_0"
#define ART_CREATE1 "menu/art/create_1" #define ART_CREATE1 "menu/art/create_1"
#define ART_SPECIFY0 "menu/art/specify_0" #define ART_SPECIFY0 "menu/art/specify_0"
@ -40,6 +43,10 @@ MULTIPLAYER MENU (SERVER BROWSER)
#define ART_REMOVE0 "menu/art/delete_0" #define ART_REMOVE0 "menu/art/delete_0"
#define ART_REMOVE1 "menu/art/delete_1" #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_MASTER 10
#define ID_GAMETYPE 11 #define ID_GAMETYPE 11
#define ID_SORTKEY 12 #define ID_SORTKEY 12
@ -157,11 +164,17 @@ typedef struct {
//Blaze: No need for this banner //Blaze: No need for this banner
//menutext_s banner; //menutext_s banner;
/*
menutext_s multim; menutext_s multim;
menutext_s setupm; menutext_s setupm;
menutext_s demom; menutext_s demom;
menutext_s modsm; menutext_s modsm;
menutext_s exitm; menutext_s exitm;
*/
//Elder: RQ3 Stuff
menubitmap_s rq3_starticon;
menubitmap_s rq3_starttitle;
menulist_s master; menulist_s master;
menulist_s gametype; menulist_s gametype;
@ -1216,9 +1229,17 @@ ArenaServers_MenuDraw
*/ */
static void ArenaServers_MenuDraw( void ) 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) if (g_arenaservers.refreshservers)
ArenaServers_DoRefresh(); ArenaServers_DoRefresh();
Menu_Draw( &g_arenaservers.menu ); Menu_Draw( &g_arenaservers.menu );
} }
@ -1283,6 +1304,7 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.banner.style = UI_CENTER; g_arenaservers.banner.style = UI_CENTER;
g_arenaservers.banner.color = color_white; g_arenaservers.banner.color = color_white;
*/ */
/*
g_arenaservers.multim.generic.type = MTYPE_PTEXT; g_arenaservers.multim.generic.type = MTYPE_PTEXT;
g_arenaservers.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE|QMF_HIGHLIGHT; g_arenaservers.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE|QMF_HIGHLIGHT;
g_arenaservers.multim.generic.x = 120; g_arenaservers.multim.generic.x = 120;
@ -1322,6 +1344,25 @@ static void ArenaServers_MenuInit( void ) {
g_arenaservers.exitm.string = "EXIT"; g_arenaservers.exitm.string = "EXIT";
g_arenaservers.exitm.color = color_red; g_arenaservers.exitm.color = color_red;
g_arenaservers.exitm.style = UI_CENTER | UI_DROPSHADOW; 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; y = 80;
g_arenaservers.master.generic.type = MTYPE_SPINCONTROL; 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.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
g_arenaservers.back.generic.callback = ArenaServers_Event; g_arenaservers.back.generic.callback = ArenaServers_Event;
g_arenaservers.back.generic.id = ID_BACK; g_arenaservers.back.generic.id = ID_BACK;
g_arenaservers.back.generic.x = 0; g_arenaservers.back.generic.x = 8;
g_arenaservers.back.generic.y = 480-64; g_arenaservers.back.generic.y = 480-44;
g_arenaservers.back.width = 128; g_arenaservers.back.width = 32;
g_arenaservers.back.height = 64; g_arenaservers.back.height = 32;
g_arenaservers.back.focuspic = ART_BACK1; g_arenaservers.back.focuspic = ART_BACK1;
g_arenaservers.specify.generic.type = MTYPE_BITMAP; 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.callback = ArenaServers_Event;
g_arenaservers.specify.generic.id = ID_SPECIFY; g_arenaservers.specify.generic.id = ID_SPECIFY;
g_arenaservers.specify.generic.x = 128; g_arenaservers.specify.generic.x = 128;
g_arenaservers.specify.generic.y = 480-64; g_arenaservers.specify.generic.y = 480-44;
g_arenaservers.specify.width = 128; g_arenaservers.specify.width = 64;
g_arenaservers.specify.height = 64; g_arenaservers.specify.height = 32;
g_arenaservers.specify.focuspic = ART_SPECIFY1; g_arenaservers.specify.focuspic = ART_SPECIFY1;
g_arenaservers.refresh.generic.type = MTYPE_BITMAP; 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.callback = ArenaServers_Event;
g_arenaservers.refresh.generic.id = ID_REFRESH; g_arenaservers.refresh.generic.id = ID_REFRESH;
g_arenaservers.refresh.generic.x = 256; g_arenaservers.refresh.generic.x = 256;
g_arenaservers.refresh.generic.y = 480-64; g_arenaservers.refresh.generic.y = 480-44;
g_arenaservers.refresh.width = 128; g_arenaservers.refresh.width = 64;
g_arenaservers.refresh.height = 64; g_arenaservers.refresh.height = 32;
g_arenaservers.refresh.focuspic = ART_REFRESH1; g_arenaservers.refresh.focuspic = ART_REFRESH1;
g_arenaservers.create.generic.type = MTYPE_BITMAP; 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.callback = ArenaServers_Event;
g_arenaservers.create.generic.id = ID_CREATE; g_arenaservers.create.generic.id = ID_CREATE;
g_arenaservers.create.generic.x = 384; g_arenaservers.create.generic.x = 384;
g_arenaservers.create.generic.y = 480-64; g_arenaservers.create.generic.y = 480-44;
g_arenaservers.create.width = 128; g_arenaservers.create.width = 64;
g_arenaservers.create.height = 64; g_arenaservers.create.height = 32;
g_arenaservers.create.focuspic = ART_CREATE1; g_arenaservers.create.focuspic = ART_CREATE1;
g_arenaservers.go.generic.type = MTYPE_BITMAP; 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.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
g_arenaservers.go.generic.callback = ArenaServers_Event; g_arenaservers.go.generic.callback = ArenaServers_Event;
g_arenaservers.go.generic.id = ID_CONNECT; g_arenaservers.go.generic.id = ID_CONNECT;
g_arenaservers.go.generic.x = 640; g_arenaservers.go.generic.x = 640 - 8;
g_arenaservers.go.generic.y = 480-64; g_arenaservers.go.generic.y = 480-44;
g_arenaservers.go.width = 128; g_arenaservers.go.width = 64;
g_arenaservers.go.height = 64; g_arenaservers.go.height = 32;
g_arenaservers.go.focuspic = ART_CONNECT1; g_arenaservers.go.focuspic = ART_CONNECT1;
//Blaze: This banner is not needed //Blaze: This banner is not needed
// Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.banner ); // Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.banner );
/*
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.multim ); Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.multim );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.setupm ); Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.setupm );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.demom ); Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.demom );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.modsm ); Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.modsm );
Menu_AddItem( &g_arenaservers.menu, &g_arenaservers.exitm ); 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.master );
Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.gametype ); 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_UP );
trap_R_RegisterShaderNoMip( ART_ARROWS_DOWN ); trap_R_RegisterShaderNoMip( ART_ARROWS_DOWN );
trap_R_RegisterShaderNoMip( ART_UNKNOWNMAP ); 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 SPECIFY SERVER
*********************************************************************************/ *********************************************************************************/
#define SPECIFYSERVER_FRAMEL "menu/art/frame2_l" //#define SPECIFYSERVER_FRAMEL "menu/art/frame2_l"
#define SPECIFYSERVER_FRAMER "menu/art/frame1_r" //#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/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_FIGHT0 "menu/art/fight_0"
#define SPECIFYSERVER_FIGHT1 "menu/art/fight_1" #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_SPECIFYSERVERBACK 102
#define ID_SPECIFYSERVERGO 103 #define ID_SPECIFYSERVERGO 103
static char* specifyserver_artlist[] = static char* specifyserver_artlist[] =
{ {
SPECIFYSERVER_FRAMEL, //SPECIFYSERVER_FRAMEL,
SPECIFYSERVER_FRAMER, //SPECIFYSERVER_FRAMER,
SPECIFYSERVER_BACK0, SPECIFYSERVER_BACK0,
SPECIFYSERVER_BACK1, SPECIFYSERVER_BACK1,
SPECIFYSERVER_FIGHT0, SPECIFYSERVER_FIGHT0,
@ -34,11 +41,18 @@ typedef struct
// menutext_s banner; // menutext_s banner;
// menubitmap_s framel; // menubitmap_s framel;
// menubitmap_s framer; // menubitmap_s framer;
/*
menutext_s multim; menutext_s multim;
menutext_s setupm; menutext_s setupm;
menutext_s demom; menutext_s demom;
menutext_s modsm; menutext_s modsm;
menutext_s exitm; menutext_s exitm;
*/
//Elder: RQ3 Stuff
menubitmap_s rq3_starticon;
menubitmap_s rq3_starttitle;
menufield_s domain; menufield_s domain;
menufield_s port; menufield_s port;
@ -48,6 +62,26 @@ typedef struct
static specifyserver_t s_specifyserver; 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 SpecifyServer_Event
@ -94,6 +128,7 @@ void SpecifyServer_MenuInit( void )
SpecifyServer_Cache(); SpecifyServer_Cache();
s_specifyserver.menu.draw = SpecifyServer_MenuDraw;
s_specifyserver.menu.wrapAround = qtrue; s_specifyserver.menu.wrapAround = qtrue;
s_specifyserver.menu.fullscreen = qtrue; s_specifyserver.menu.fullscreen = qtrue;
s_specifyserver.menu.showlogo = qtrue; s_specifyserver.menu.showlogo = qtrue;
@ -124,6 +159,7 @@ void SpecifyServer_MenuInit( void )
s_specifyserver.framer.width = 256; s_specifyserver.framer.width = 256;
s_specifyserver.framer.height = 334; s_specifyserver.framer.height = 334;
*/ */
/*
s_specifyserver.multim.generic.type = MTYPE_PTEXT; s_specifyserver.multim.generic.type = MTYPE_PTEXT;
s_specifyserver.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE|QMF_HIGHLIGHT; s_specifyserver.multim.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE|QMF_HIGHLIGHT;
s_specifyserver.multim.generic.x = 120; s_specifyserver.multim.generic.x = 120;
@ -164,8 +200,28 @@ void SpecifyServer_MenuInit( void )
s_specifyserver.exitm.string = "EXIT"; s_specifyserver.exitm.string = "EXIT";
s_specifyserver.exitm.color = color_red; s_specifyserver.exitm.color = color_red;
s_specifyserver.exitm.style = UI_CENTER | UI_DROPSHADOW; 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.name = "Address:";
s_specifyserver.domain.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT; s_specifyserver.domain.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_specifyserver.domain.generic.x = 206; 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.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_specifyserver.go.generic.callback = SpecifyServer_Event; s_specifyserver.go.generic.callback = SpecifyServer_Event;
s_specifyserver.go.generic.id = ID_SPECIFYSERVERGO; s_specifyserver.go.generic.id = ID_SPECIFYSERVERGO;
s_specifyserver.go.generic.x = 640; s_specifyserver.go.generic.x = 640-8;
s_specifyserver.go.generic.y = 480-64; s_specifyserver.go.generic.y = 480-44;
s_specifyserver.go.width = 128; s_specifyserver.go.width = 64;
s_specifyserver.go.height = 64; s_specifyserver.go.height = 32;
s_specifyserver.go.focuspic = SPECIFYSERVER_FIGHT1; s_specifyserver.go.focuspic = SPECIFYSERVER_FIGHT1;
s_specifyserver.back.generic.type = MTYPE_BITMAP; 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.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
s_specifyserver.back.generic.callback = SpecifyServer_Event; s_specifyserver.back.generic.callback = SpecifyServer_Event;
s_specifyserver.back.generic.id = ID_SPECIFYSERVERBACK; s_specifyserver.back.generic.id = ID_SPECIFYSERVERBACK;
s_specifyserver.back.generic.x = 0; s_specifyserver.back.generic.x = 8;
s_specifyserver.back.generic.y = 480-64; s_specifyserver.back.generic.y = 480-44;
s_specifyserver.back.width = 128; s_specifyserver.back.width = 32;
s_specifyserver.back.height = 64; s_specifyserver.back.height = 32;
s_specifyserver.back.focuspic = SPECIFYSERVER_BACK1; s_specifyserver.back.focuspic = SPECIFYSERVER_BACK1;
//Blaze: This banner is not needed //Blaze: This banner is not needed
//Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.banner ); //Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.banner );
//Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.framel ); //Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.framel );
//Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.framer ); //Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.framer );
/*
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.multim ); Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.multim );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.setupm ); Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.setupm );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.demom ); Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.demom );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.modsm ); Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.modsm );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.exitm ); 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.domain );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.port ); Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.port );
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.go ); Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.go );

View file

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