mirror of
https://github.com/UberGames/rpgxEF.git
synced 2024-11-14 17:01:21 +00:00
a39565b783
... not quite content with where the project files lie but it is ok for now. ... compiling works fine so far (only tested mingw32 right now)
269 lines
9.3 KiB
C
269 lines
9.3 KiB
C
// Copyright (C) 1999-2000 Id Software, Inc.
|
|
//
|
|
#include "ui_local.h"
|
|
|
|
/*********************************************************************************
|
|
SPECIFY SERVER
|
|
*********************************************************************************/
|
|
|
|
#define ID_MAINMENU 100
|
|
#define ID_BACK 102
|
|
#define ID_SPECIFYSERVERGO 103
|
|
|
|
|
|
typedef struct
|
|
{
|
|
menuframework_s menu;
|
|
menubitmap_s mainmenu;
|
|
menubitmap_s back;
|
|
menufield_s domain;
|
|
menufield_s port;
|
|
menubitmap_s go;
|
|
|
|
qhandle_t corner_ul;
|
|
qhandle_t corner_ur;
|
|
qhandle_t corner_ll;
|
|
qhandle_t corner_lr;
|
|
|
|
} specifyserver_t;
|
|
|
|
|
|
static specifyserver_t s_specifyserver;
|
|
|
|
/*
|
|
=================
|
|
SpecifyServer_Event
|
|
=================
|
|
*/
|
|
static void SpecifyServer_Event( void* ptr, int event )
|
|
{
|
|
char buff[256];
|
|
|
|
if (event != QM_ACTIVATED)
|
|
{
|
|
return;
|
|
}
|
|
|
|
switch (((menucommon_s*)ptr)->id)
|
|
{
|
|
case ID_MAINMENU:
|
|
UI_PopMenu();
|
|
UI_MainMenu();
|
|
break;
|
|
|
|
case ID_SPECIFYSERVERGO:
|
|
if (s_specifyserver.domain.field.buffer[0])
|
|
{
|
|
strcpy(buff,s_specifyserver.domain.field.buffer);
|
|
if (s_specifyserver.port.field.buffer[0])
|
|
Com_sprintf( buff+strlen(buff), 128, ":%s", s_specifyserver.port.field.buffer );
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va( "connect %s\n", buff ) );
|
|
}
|
|
break;
|
|
|
|
case ID_BACK:
|
|
UI_PopMenu();
|
|
break;
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
SpecifyServer_Graphics
|
|
=================
|
|
*/
|
|
void SpecifyServer_Graphics (void)
|
|
{
|
|
UI_MenuFrame2(&s_specifyserver.menu);
|
|
|
|
trap_R_SetColor( colorTable[CT_LTBROWN1]);
|
|
UI_DrawHandlePic( 30,203, 47, 186, uis.whiteShader); // Left hand column of screen frame
|
|
|
|
trap_R_SetColor( colorTable[CT_LTPURPLE3]);
|
|
UI_DrawHandlePic(135, 100, 32, 32,s_specifyserver.corner_ul); // Upper left corner
|
|
UI_DrawHandlePic(574, 100, 32, 32,s_specifyserver.corner_ur); // Upper Right corner
|
|
UI_DrawHandlePic(135, 282, 32, 32,s_specifyserver.corner_ll); // corner
|
|
UI_DrawHandlePic(574, 282, 32, 32,s_specifyserver.corner_lr); // corner
|
|
|
|
// Address label
|
|
trap_R_SetColor( colorTable[CT_LTPURPLE3]);
|
|
UI_DrawHandlePic( 189,166, 385, 20, uis.whiteShader); // Background for Address label
|
|
trap_R_SetColor( colorTable[CT_BLACK]);
|
|
UI_DrawHandlePic( 253,168, 315, 16, uis.whiteShader); // Black square for data
|
|
|
|
// Port label
|
|
trap_R_SetColor( colorTable[CT_LTPURPLE3]);
|
|
UI_DrawHandlePic( 191, 214, 135, 20, uis.whiteShader); // Background for Port label
|
|
trap_R_SetColor( colorTable[CT_BLACK]);
|
|
UI_DrawHandlePic( 254, 216, 58, 16, uis.whiteShader); // Black square for data
|
|
|
|
// Frame around data
|
|
trap_R_SetColor( colorTable[CT_LTPURPLE3]);
|
|
UI_DrawHandlePic( 152,100, 426, 18, uis.whiteShader); // Top line
|
|
UI_DrawHandlePic( 135,120, 18, 171, uis.whiteShader); // Left side
|
|
UI_DrawHandlePic( 578,120, 18, 171, uis.whiteShader); // Right side
|
|
UI_DrawHandlePic( 160,286, 411, 18, uis.whiteShader); // Bottom line to left of Engage button
|
|
|
|
UI_DrawProportionalString( 169, 102, menu_normal_text[MNT_SERVERINFORMATION],UI_SMALLFONT, colorTable[CT_BLACK]);
|
|
|
|
|
|
UI_DrawProportionalString( 74, 27, "216",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 74, "1009-3",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "9-3001",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 206, "10963",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "10961",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
// Left rounded ends for buttons
|
|
trap_R_SetColor( colorTable[s_specifyserver.mainmenu.color]);
|
|
UI_DrawHandlePic(s_specifyserver.mainmenu.generic.x - 14, s_specifyserver.mainmenu.generic.y,
|
|
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
|
|
|
|
trap_R_SetColor( colorTable[s_specifyserver.back.color]);
|
|
UI_DrawHandlePic(s_specifyserver.back.generic.x - 14, s_specifyserver.back.generic.y,
|
|
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
|
|
}
|
|
|
|
/*
|
|
=================
|
|
SpecifyServer_MenuDraw
|
|
=================
|
|
*/
|
|
static void SpecifyServer_MenuDraw( void )
|
|
{
|
|
SpecifyServer_Graphics();
|
|
|
|
Menu_Draw( &s_specifyserver.menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
SpecifyServer_MenuInit
|
|
=================
|
|
*/
|
|
void SpecifyServer_MenuInit( void )
|
|
{
|
|
// zero set all our globals
|
|
memset( &s_specifyserver, 0 ,sizeof(specifyserver_t) );
|
|
|
|
SpecifyServer_Cache();
|
|
|
|
s_specifyserver.menu.wrapAround = qtrue;
|
|
s_specifyserver.menu.fullscreen = qtrue;
|
|
s_specifyserver.menu.draw = SpecifyServer_MenuDraw;
|
|
s_specifyserver.menu.descX = MENU_DESC_X;
|
|
s_specifyserver.menu.descY = MENU_DESC_Y;
|
|
s_specifyserver.menu.titleX = MENU_TITLE_X;
|
|
s_specifyserver.menu.titleY = MENU_TITLE_Y;
|
|
s_specifyserver.menu.titleI = MNT_MULTIPLAYER_TITLE;
|
|
s_specifyserver.menu.footNoteEnum = MNT_SPECIFYSERVER;
|
|
|
|
s_specifyserver.mainmenu.generic.type = MTYPE_BITMAP;
|
|
s_specifyserver.mainmenu.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_specifyserver.mainmenu.generic.x = 110;
|
|
s_specifyserver.mainmenu.generic.y = 391;
|
|
s_specifyserver.mainmenu.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_specifyserver.mainmenu.generic.id = ID_MAINMENU;
|
|
s_specifyserver.mainmenu.generic.callback = SpecifyServer_Event;
|
|
s_specifyserver.mainmenu.width = MENU_BUTTON_MED_WIDTH;
|
|
s_specifyserver.mainmenu.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_specifyserver.mainmenu.color = CT_DKPURPLE1;
|
|
s_specifyserver.mainmenu.color2 = CT_LTPURPLE1;
|
|
s_specifyserver.mainmenu.textX = 5;
|
|
s_specifyserver.mainmenu.textY = 2;
|
|
s_specifyserver.mainmenu.textEnum = MBT_MAINMENU;
|
|
s_specifyserver.mainmenu.textcolor = CT_BLACK;
|
|
s_specifyserver.mainmenu.textcolor2 = CT_WHITE;
|
|
|
|
s_specifyserver.back.generic.type = MTYPE_BITMAP;
|
|
s_specifyserver.back.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_specifyserver.back.generic.x = 110;
|
|
s_specifyserver.back.generic.y = 415;
|
|
s_specifyserver.back.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_specifyserver.back.generic.id = ID_BACK;
|
|
s_specifyserver.back.generic.callback = SpecifyServer_Event;
|
|
s_specifyserver.back.width = MENU_BUTTON_MED_WIDTH;
|
|
s_specifyserver.back.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_specifyserver.back.color = CT_DKPURPLE1;
|
|
s_specifyserver.back.color2 = CT_LTPURPLE1;
|
|
s_specifyserver.back.textX = 5;
|
|
s_specifyserver.back.textY = 2;
|
|
s_specifyserver.back.textEnum = MBT_BACK;
|
|
s_specifyserver.back.textcolor = CT_BLACK;
|
|
s_specifyserver.back.textcolor2 = CT_WHITE;
|
|
|
|
s_specifyserver.domain.generic.type = MTYPE_FIELD;
|
|
s_specifyserver.domain.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_specifyserver.domain.generic.x = 255;
|
|
s_specifyserver.domain.generic.y = 168;
|
|
s_specifyserver.domain.field.widthInChars = 38;
|
|
s_specifyserver.domain.field.maxchars = 80;
|
|
s_specifyserver.domain.field.style = UI_SMALLFONT;
|
|
s_specifyserver.domain.field.titleEnum = MBT_ADDRESS;
|
|
s_specifyserver.domain.field.textcolor = CT_LTGOLD1;
|
|
s_specifyserver.domain.field.textcolor2 = CT_LTGOLD1;
|
|
s_specifyserver.domain.field.titlecolor = CT_LTGOLD1;
|
|
|
|
s_specifyserver.port.generic.type = MTYPE_FIELD;
|
|
s_specifyserver.port.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT|QMF_NUMBERSONLY;
|
|
s_specifyserver.port.generic.x = 255;
|
|
s_specifyserver.port.generic.y = 216;
|
|
s_specifyserver.port.field.widthInChars = 6;
|
|
s_specifyserver.port.field.maxchars = 5;
|
|
s_specifyserver.port.field.style = UI_SMALLFONT;
|
|
s_specifyserver.port.field.titleEnum = MBT_PORT;
|
|
s_specifyserver.port.field.textcolor = CT_LTGOLD1;
|
|
s_specifyserver.port.field.textcolor2 = CT_LTGOLD1;
|
|
s_specifyserver.port.field.titlecolor = CT_LTGOLD1;
|
|
|
|
s_specifyserver.go.generic.type = MTYPE_BITMAP;
|
|
s_specifyserver.go.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_specifyserver.go.generic.x = 462;
|
|
s_specifyserver.go.generic.y = 391;
|
|
s_specifyserver.go.generic.name = GRAPHIC_SQUARE;
|
|
s_specifyserver.go.generic.id = ID_SPECIFYSERVERGO;
|
|
s_specifyserver.go.generic.callback = SpecifyServer_Event;
|
|
s_specifyserver.go.width = 150;
|
|
s_specifyserver.go.height = 42;
|
|
s_specifyserver.go.color = CT_DKPURPLE1;
|
|
s_specifyserver.go.color2 = CT_LTPURPLE1;
|
|
s_specifyserver.go.textX = 5;
|
|
s_specifyserver.go.textY = 2;
|
|
s_specifyserver.go.textEnum = MBT_ENGAGEMULTIPLAYER;
|
|
s_specifyserver.go.textcolor = CT_BLACK;
|
|
s_specifyserver.go.textcolor2 = CT_WHITE;
|
|
|
|
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.mainmenu );
|
|
|
|
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.domain );
|
|
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.port );
|
|
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.go );
|
|
Menu_AddItem( &s_specifyserver.menu, &s_specifyserver.back );
|
|
|
|
Com_sprintf( s_specifyserver.port.field.buffer, 6, "%i", 27960 );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
SpecifyServer_Cache
|
|
=================
|
|
*/
|
|
void SpecifyServer_Cache( void )
|
|
{
|
|
s_specifyserver.corner_ul = trap_R_RegisterShaderNoMip("menu/common/corner_ul_18_18.tga");
|
|
s_specifyserver.corner_ur = trap_R_RegisterShaderNoMip("menu/common/corner_ur_18_18.tga");
|
|
s_specifyserver.corner_ll = trap_R_RegisterShaderNoMip("menu/common/corner_ll_18_18.tga");
|
|
s_specifyserver.corner_lr = trap_R_RegisterShaderNoMip("menu/common/corner_lr_18_18.tga");
|
|
}
|
|
|
|
/*
|
|
=================
|
|
UI_SpecifyServerMenu
|
|
=================
|
|
*/
|
|
void UI_SpecifyServerMenu( void )
|
|
{
|
|
SpecifyServer_MenuInit();
|
|
UI_PushMenu( &s_specifyserver.menu );
|
|
}
|
|
|