2011-06-01 12:20:56 +00:00
|
|
|
/**********************************************************************
|
|
|
|
UI_TRANSPORTER.C
|
|
|
|
|
|
|
|
User interface trigger from within game
|
|
|
|
**********************************************************************/
|
|
|
|
#include "ui_local.h"
|
|
|
|
|
|
|
|
char *delayList[20] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
|
|
|
|
"11", "12", "13", "14", "15", "20", "30", "60", 0 };
|
|
|
|
|
|
|
|
char srvList[6][MAX_QPATH];
|
|
|
|
|
|
|
|
typedef struct //static
|
|
|
|
{
|
|
|
|
menuframework_s menu;
|
|
|
|
sfxHandle_t openingVoice;
|
|
|
|
menubitmap_s quitmenu;
|
|
|
|
menubitmap_s engage;
|
|
|
|
menubitmap_s engage2;
|
|
|
|
menulist_s locButton;
|
|
|
|
menulist_s srvButton;
|
|
|
|
menulist_s delButton;
|
|
|
|
|
|
|
|
char *srvListPtr[7];
|
|
|
|
char *mlist[MAX_QPATH];
|
|
|
|
|
|
|
|
int targetEntID;
|
|
|
|
} transporter_t;
|
|
|
|
|
|
|
|
transporter_t s_transporter;
|
|
|
|
|
|
|
|
#define ID_COMPUTERVOICE 6
|
|
|
|
|
|
|
|
#define ID_QUIT 10
|
|
|
|
#define ID_ENGAGE 100
|
|
|
|
#define ID_ENGAGE2 101
|
|
|
|
|
|
|
|
extern adminGeneric_t s_adminGeneric;
|
|
|
|
extern void AdminGeneric_InitLists( void );
|
|
|
|
|
|
|
|
void UI_TransporterMenu_Cache (void);
|
|
|
|
|
|
|
|
|
2011-06-15 06:46:11 +00:00
|
|
|
/*static void TransCreateMaplist(void) {
|
2011-06-01 12:20:56 +00:00
|
|
|
|
2011-06-15 06:46:11 +00:00
|
|
|
}*/
|
2011-06-01 12:20:56 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
TransDataReceived
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void TransDataReceived(const char *data) {
|
|
|
|
char *temp;
|
|
|
|
int i;
|
|
|
|
for(i = 0; i < 6; i++) {
|
|
|
|
temp = Info_ValueForKey(data, va("d%i", i));
|
|
|
|
if(!temp[0]) break;
|
|
|
|
Q_strncpyz(srvList[i], temp, sizeof(srvList[i]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
M_Transporter_Event
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
static void M_Transporter_Event (void* ptr, int notification)
|
|
|
|
{
|
|
|
|
int id;
|
|
|
|
//menubitmap_s *holdLocation;
|
|
|
|
//menubitmap_s *holdServer;
|
|
|
|
|
|
|
|
id = ((menucommon_s*)ptr)->id;
|
|
|
|
|
|
|
|
/*if ( notification != QM_ACTIVATED )
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}*/
|
|
|
|
|
|
|
|
switch (id)
|
|
|
|
{
|
|
|
|
case ID_QUIT:
|
|
|
|
if ( notification == QM_ACTIVATED )
|
|
|
|
UI_PopMenu();
|
|
|
|
break;
|
|
|
|
case ID_ENGAGE: // Active only if a deck has been chosen
|
|
|
|
if ( notification == QM_ACTIVATED ) {
|
|
|
|
if(s_transporter.delButton.curvalue <= 16)
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterLoc %i %i %i", s_transporter.targetEntID, s_transporter.locButton.curvalue + 1, s_transporter.delButton.curvalue));
|
|
|
|
else {
|
|
|
|
switch(s_transporter.delButton.curvalue) {
|
|
|
|
case 17:
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterLoc %i %i %i", s_transporter.targetEntID, s_transporter.locButton.curvalue + 1, 20));
|
|
|
|
break;
|
|
|
|
case 18:
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterLoc %i %i %i", s_transporter.targetEntID, s_transporter.locButton.curvalue + 1, 30));
|
|
|
|
break;
|
|
|
|
case 19:
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterLoc %i %i %i", s_transporter.targetEntID, s_transporter.locButton.curvalue + 1, 60));
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
UI_ForceMenuOff();
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case ID_ENGAGE2: // Active only if a deck has been chosen
|
|
|
|
if ( notification == QM_ACTIVATED ) {
|
|
|
|
if(s_transporter.delButton.curvalue <= 16)
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterExt %i %i %i", s_transporter.targetEntID, s_transporter.srvButton.curvalue , s_transporter.delButton.curvalue));
|
|
|
|
else {
|
|
|
|
switch(s_transporter.delButton.curvalue) {
|
|
|
|
case 17:
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterExt %i %i %i", s_transporter.targetEntID, s_transporter.srvButton.curvalue, 20));
|
|
|
|
break;
|
|
|
|
case 18:
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterExt %i %i %i", s_transporter.targetEntID, s_transporter.srvButton.curvalue, 30));
|
|
|
|
break;
|
|
|
|
case 19:
|
|
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, va("ui_transporterExt %i %i %i", s_transporter.targetEntID, s_transporter.srvButton.curvalue, 60));
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
UI_ForceMenuOff();
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
TransporterMenu_Key
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
sfxHandle_t TransporterMenu_Key (int key)
|
|
|
|
{
|
|
|
|
return ( Menu_DefaultKey( &s_transporter.menu, key ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
extern qhandle_t leftRound;
|
|
|
|
extern qhandle_t corner_ul_24_60;
|
|
|
|
extern qhandle_t corner_ll_12_60;
|
|
|
|
qhandle_t transporter_sym;
|
|
|
|
qhandle_t loading1;
|
|
|
|
qhandle_t loading2;
|
|
|
|
qhandle_t loading3;
|
|
|
|
qhandle_t loading4;
|
|
|
|
qhandle_t loading5;
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
M_TransporterMenu_Graphics
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
static void M_TransporterMenu_Graphics (void)
|
|
|
|
{
|
|
|
|
//menubitmap_s *holdDeck;
|
|
|
|
//int i;
|
|
|
|
int length,xTurboStart;
|
|
|
|
//int numColor, roundColor;
|
|
|
|
|
|
|
|
// Draw the basic screen frame
|
|
|
|
|
|
|
|
// Upper corners
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE1]);
|
|
|
|
UI_DrawHandlePic( 20, 24, 64, 32, corner_ul_24_60); // Upper corner
|
|
|
|
trap_R_SetColor( colorTable[CT_LTPURPLE1] ); //colorTable[CT_LTBLUE1] //[CT_DKGOLD1] //colorTable[CT_VDKPURPLE2]
|
|
|
|
UI_DrawHandlePic( 70, 56, 128, 128, transporter_sym); // Transporter graphic
|
|
|
|
|
|
|
|
// Lower corners
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE3]); //colorTable[CT_VDKPURPLE2]
|
|
|
|
UI_DrawHandlePic( 20, 440, 64, 16, corner_ll_12_60); //
|
|
|
|
|
|
|
|
xTurboStart = 604;
|
|
|
|
length = UI_ProportionalStringWidth( menu_normal_text[MNT_TRANSPORTER],UI_BIGFONT);
|
|
|
|
length += 4;
|
|
|
|
|
|
|
|
// Upper half
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1
|
|
|
|
UI_DrawHandlePic( 79, 24, xTurboStart - (79 + length), PROP_BIG_HEIGHT, uis.whiteShader); // Top left line
|
|
|
|
UI_DrawHandlePic( 20, 60, 60, 40, uis.whiteShader); //
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE3]);
|
|
|
|
UI_DrawHandlePic( 20, 106, 60, 11, uis.whiteShader); //
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1
|
|
|
|
UI_DrawHandlePic( 20, 123, 60, 250, uis.whiteShader); // Left hand column
|
|
|
|
|
|
|
|
// Lower half
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE3] ); //colorTable[CT_VDKPURPLE2]
|
|
|
|
UI_DrawHandlePic( 20, 380, 60, 70, uis.whiteShader); // Left Column
|
|
|
|
|
|
|
|
// Bottom line
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE3] ); //colorTable[CT_VDKPURPLE2]
|
|
|
|
UI_DrawHandlePic( 69, 443, 287, 12, uis.whiteShader); //
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE1]); //colorTable[CT_DKGOLD1]
|
|
|
|
UI_DrawHandlePic(364, 443, 260, 12, uis.whiteShader); // Bottom line
|
|
|
|
|
|
|
|
|
|
|
|
UI_DrawProportionalString( xTurboStart, 24,
|
|
|
|
menu_normal_text[MNT_TRANSPORTER], UI_BIGFONT | UI_RIGHT, colorTable[CT_WHITE]);
|
|
|
|
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1
|
|
|
|
UI_DrawHandlePic( 607, 24,-16, 32, leftRound);
|
|
|
|
|
|
|
|
trap_R_SetColor( colorTable[CT_LTGOLD1] );
|
|
|
|
UI_DrawHandlePic( 86, 240, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 86, 290, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 86, 340, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 86, 390, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 164, 240, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 164, 290, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 164, 340, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 164, 390, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 242, 240, 74, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 242, 290, 76, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 242, 340, 76, 46, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 242, 390, 76, 46, uis.whiteShader);
|
|
|
|
|
|
|
|
trap_R_SetColor( colorTable[CT_LTPURPLE1] );
|
|
|
|
UI_DrawHandlePic( 84, 192, 2, 243, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 158, 192, 2, 243, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 162, 192, 2, 243, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 236, 192, 2, 243, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 240, 192, 2, 243, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 316, 192, -2, 243, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 84, 192, 74, 2, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 162, 192, 74, 2, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 240, 192, 76, 2, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 84, 435, 76, -2, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 162, 435, 76, -2, uis.whiteShader);
|
|
|
|
UI_DrawHandlePic( 240, 435, 78, -2, uis.whiteShader);
|
|
|
|
|
|
|
|
trap_R_SetColor( colorTable[CT_LTBLUE1] );
|
|
|
|
UI_DrawHandlePic( 366, 208, 243, 212, loading2 );
|
|
|
|
trap_R_SetColor( colorTable[CT_LTGOLD1] );
|
|
|
|
UI_DrawHandlePic( 366, 208, 243, 212, loading3 );
|
|
|
|
UI_DrawHandlePic( 366, 208, 243, 212, loading1 );
|
|
|
|
trap_R_SetColor( colorTable[CT_DKBLUE1] );
|
|
|
|
UI_DrawHandlePic( 366, 208, 243, 212, loading4 );
|
|
|
|
trap_R_SetColor( colorTable[CT_DKORANGE] );
|
|
|
|
UI_DrawHandlePic( 366, 208, 243, 212, loading5 );
|
|
|
|
|
|
|
|
UI_DrawProportionalString(487, 297, "1", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(508, 297, "2", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(487, 322, "3", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(508, 322, "4", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(395, 405, "22", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(370, 327, "45", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(399, 236, "7", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(487, 215, "35", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(502, 215, "2", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(596, 318, "67", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString(502, 405, "27", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
===============
|
|
|
|
TransporterMenu_Draw
|
|
|
|
===============
|
|
|
|
*/
|
|
|
|
static void TransporterMenu_Draw(void)
|
|
|
|
{
|
|
|
|
// Draw graphics particular to Main Menu
|
|
|
|
M_TransporterMenu_Graphics();
|
|
|
|
|
|
|
|
Menu_Draw( &s_transporter.menu );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
===============
|
|
|
|
UI_TransporterMenu_Cache
|
|
|
|
===============
|
|
|
|
*/
|
|
|
|
void UI_TransporterMenu_Cache (void)
|
|
|
|
{
|
|
|
|
leftRound = trap_R_RegisterShaderNoMip("menu/common/halfroundl_24.tga");
|
|
|
|
corner_ul_24_60 = trap_R_RegisterShaderNoMip("menu/common/corner_ul_24_60.tga");
|
|
|
|
corner_ll_12_60 = trap_R_RegisterShaderNoMip("menu/common/corner_ll_12_60.tga");
|
|
|
|
transporter_sym = trap_R_RegisterShaderNoMip("menu/special/transporter_symbol.tga");
|
|
|
|
loading1 = trap_R_RegisterShaderNoMip("menu/new/nav_y.tga");
|
|
|
|
loading2 = trap_R_RegisterShaderNoMip("menu/new/nav_mb.tga");
|
|
|
|
loading3 = trap_R_RegisterShaderNoMip("menu/new/nav_lb.tga");
|
|
|
|
loading4 = trap_R_RegisterShaderNoMip("menu/new/nav_db.tga");
|
|
|
|
loading5 = trap_R_RegisterShaderNoMip("menu/new/nab_o.tga");
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
===============
|
|
|
|
TransporterMenu_Init
|
|
|
|
===============
|
|
|
|
*/
|
|
|
|
void TransporterMenu_Init(void)
|
|
|
|
{
|
|
|
|
int y,pad,x;
|
|
|
|
//int i;
|
|
|
|
int width;
|
|
|
|
|
|
|
|
AdminGeneric_InitLists();
|
|
|
|
|
|
|
|
s_transporter.menu.nitems = 0;
|
|
|
|
s_transporter.menu.draw = TransporterMenu_Draw;
|
|
|
|
s_transporter.menu.key = TransporterMenu_Key;
|
|
|
|
s_transporter.menu.wrapAround = qtrue;
|
|
|
|
s_transporter.menu.descX = MENU_DESC_X;
|
|
|
|
s_transporter.menu.descY = MENU_DESC_Y;
|
|
|
|
s_transporter.menu.titleX = MENU_TITLE_X;
|
|
|
|
s_transporter.menu.titleY = MENU_TITLE_Y;
|
|
|
|
|
|
|
|
pad = PROP_BIG_HEIGHT + 10;
|
|
|
|
width = MENU_BUTTON_MED_WIDTH-20;
|
|
|
|
y = 72;
|
|
|
|
x = 208;
|
|
|
|
|
|
|
|
s_transporter.engage.generic.type = MTYPE_BITMAP;
|
|
|
|
s_transporter.engage.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
|
|
s_transporter.engage.generic.x = x;
|
|
|
|
s_transporter.engage.generic.y = y;
|
|
|
|
s_transporter.engage.generic.name = GRAPHIC_BUTTONLEFT;
|
|
|
|
s_transporter.engage.generic.id = ID_ENGAGE;
|
|
|
|
s_transporter.engage.generic.callback = M_Transporter_Event;
|
|
|
|
s_transporter.engage.width = width;
|
|
|
|
s_transporter.engage.height = PROP_BIG_HEIGHT;
|
|
|
|
s_transporter.engage.color = CT_DKPURPLE1;
|
|
|
|
s_transporter.engage.color2 = CT_LTPURPLE1;
|
|
|
|
s_transporter.engage.textX = MENU_BUTTON_TEXT_X;
|
|
|
|
s_transporter.engage.textY = 12;
|
|
|
|
s_transporter.engage.textEnum = MBT_ENGAGE;
|
|
|
|
s_transporter.engage.textcolor = CT_BLACK;
|
|
|
|
s_transporter.engage.textcolor2 = CT_WHITE;
|
|
|
|
s_transporter.engage.textStyle = UI_TINYFONT;
|
|
|
|
|
|
|
|
y += pad;
|
|
|
|
|
|
|
|
s_transporter.engage2.generic.type = MTYPE_BITMAP;
|
|
|
|
s_transporter.engage2.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
|
|
s_transporter.engage2.generic.x = x;
|
|
|
|
s_transporter.engage2.generic.y = y;
|
|
|
|
s_transporter.engage2.generic.name = GRAPHIC_BUTTONLEFT;
|
|
|
|
s_transporter.engage2.generic.id = ID_ENGAGE2;
|
|
|
|
s_transporter.engage2.generic.callback = M_Transporter_Event;
|
|
|
|
s_transporter.engage2.width = width;
|
|
|
|
s_transporter.engage2.height = PROP_BIG_HEIGHT;
|
|
|
|
s_transporter.engage2.color = CT_DKPURPLE1;
|
|
|
|
s_transporter.engage2.color2 = CT_LTPURPLE1;
|
|
|
|
s_transporter.engage2.textX = MENU_BUTTON_TEXT_X;
|
|
|
|
s_transporter.engage2.textY = 12;
|
|
|
|
s_transporter.engage2.textEnum = MBT_ENGAGE;
|
|
|
|
s_transporter.engage2.textcolor = CT_BLACK;
|
|
|
|
s_transporter.engage2.textcolor2 = CT_WHITE;
|
|
|
|
s_transporter.engage2.textStyle = UI_TINYFONT;
|
|
|
|
|
|
|
|
y += pad;
|
|
|
|
|
|
|
|
s_transporter.quitmenu.generic.type = MTYPE_BITMAP;
|
|
|
|
s_transporter.quitmenu.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
|
|
s_transporter.quitmenu.generic.x = x;
|
|
|
|
s_transporter.quitmenu.generic.y = y;
|
|
|
|
s_transporter.quitmenu.generic.name = GRAPHIC_BUTTONLEFT;
|
|
|
|
s_transporter.quitmenu.generic.id = ID_QUIT;
|
|
|
|
s_transporter.quitmenu.generic.callback = M_Transporter_Event;
|
|
|
|
s_transporter.quitmenu.width = width;
|
|
|
|
s_transporter.quitmenu.height = PROP_BIG_HEIGHT;
|
|
|
|
s_transporter.quitmenu.color = CT_DKPURPLE1;
|
|
|
|
s_transporter.quitmenu.color2 = CT_LTPURPLE1;
|
|
|
|
s_transporter.quitmenu.textX = MENU_BUTTON_TEXT_X;
|
|
|
|
s_transporter.quitmenu.textY = 12;
|
|
|
|
s_transporter.quitmenu.textEnum = MBT_RETURNMENU;
|
|
|
|
s_transporter.quitmenu.textcolor = CT_BLACK;
|
|
|
|
s_transporter.quitmenu.textcolor2 = CT_WHITE;
|
|
|
|
s_transporter.quitmenu.textStyle = UI_TINYFONT;
|
|
|
|
|
|
|
|
y -= (2*pad);
|
|
|
|
x += width + 8;
|
|
|
|
|
|
|
|
s_transporter.locButton.generic.type = MTYPE_SPINCONTROL;
|
|
|
|
s_transporter.locButton.generic.flags = QMF_HIGHLIGHT_IF_FOCUS | QMF_ALTERNATE;
|
|
|
|
s_transporter.locButton.generic.x = x;
|
|
|
|
s_transporter.locButton.generic.y = y;
|
|
|
|
s_transporter.locButton.width = width;
|
|
|
|
s_transporter.locButton.height = PROP_BIG_HEIGHT;
|
|
|
|
s_transporter.locButton.itemnames = (const char**)s_adminGeneric.locListPtr;
|
|
|
|
s_transporter.locButton.color = CT_DKPURPLE1;
|
|
|
|
s_transporter.locButton.color2 = CT_LTPURPLE1;
|
|
|
|
s_transporter.locButton.textX = MENU_BUTTON_TEXT_X;
|
|
|
|
s_transporter.locButton.textY = 12;
|
|
|
|
s_transporter.locButton.textEnum = MBT_ADMIN_BEAMLOC;
|
|
|
|
s_transporter.locButton.textcolor = CT_BLACK;
|
|
|
|
s_transporter.locButton.textcolor2 = CT_WHITE;
|
|
|
|
|
|
|
|
y += pad;
|
|
|
|
|
|
|
|
s_transporter.srvButton.generic.type = MTYPE_SPINCONTROL;
|
|
|
|
s_transporter.srvButton.generic.flags = QMF_HIGHLIGHT_IF_FOCUS | QMF_ALTERNATE;
|
|
|
|
s_transporter.srvButton.generic.x = x;
|
|
|
|
s_transporter.srvButton.generic.y = y;
|
|
|
|
s_transporter.srvButton.width = width;
|
|
|
|
s_transporter.srvButton.height = PROP_BIG_HEIGHT;
|
|
|
|
s_transporter.srvButton.itemnames = (const char**)s_transporter.srvListPtr;
|
|
|
|
s_transporter.srvButton.color = CT_DKPURPLE1;
|
|
|
|
s_transporter.srvButton.color2 = CT_LTPURPLE1;
|
|
|
|
s_transporter.srvButton.textX = MENU_BUTTON_TEXT_X;
|
|
|
|
s_transporter.srvButton.textY = 12;
|
|
|
|
s_transporter.srvButton.textEnum = MBT_TRANS_EXTERN;
|
|
|
|
s_transporter.srvButton.textcolor = CT_BLACK;
|
|
|
|
s_transporter.srvButton.textcolor2 = CT_WHITE;
|
|
|
|
|
|
|
|
y += pad;
|
|
|
|
|
|
|
|
s_transporter.delButton.generic.type = MTYPE_SPINCONTROL;
|
|
|
|
s_transporter.delButton.generic.flags = QMF_HIGHLIGHT_IF_FOCUS | QMF_ALTERNATE;
|
|
|
|
s_transporter.delButton.generic.x = x;
|
|
|
|
s_transporter.delButton.generic.y = y;
|
|
|
|
s_transporter.delButton.width = width;
|
|
|
|
s_transporter.delButton.height = PROP_BIG_HEIGHT;
|
|
|
|
s_transporter.delButton.itemnames = (const char**)delayList;
|
|
|
|
s_transporter.delButton.color = CT_DKPURPLE1;
|
|
|
|
s_transporter.delButton.color2 = CT_LTPURPLE1;
|
|
|
|
s_transporter.delButton.textX = MENU_BUTTON_TEXT_X;
|
|
|
|
s_transporter.delButton.textY = 12;
|
|
|
|
s_transporter.delButton.textEnum = MBT_TRANS_DELAY;
|
|
|
|
s_transporter.delButton.textcolor = CT_BLACK;
|
|
|
|
s_transporter.delButton.textcolor2 = CT_WHITE;
|
|
|
|
|
|
|
|
Menu_AddItem( &s_transporter.menu, &s_transporter.delButton );
|
|
|
|
Menu_AddItem( &s_transporter.menu, &s_transporter.srvButton );
|
|
|
|
Menu_AddItem( &s_transporter.menu, &s_transporter.locButton );
|
|
|
|
Menu_AddItem( &s_transporter.menu, &s_transporter.engage );
|
|
|
|
Menu_AddItem( &s_transporter.menu, &s_transporter.engage2 );
|
|
|
|
Menu_AddItem( &s_transporter.menu, &s_transporter.quitmenu );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
SrvData_Init
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void SrvData_Init(void) {
|
|
|
|
int i;
|
|
|
|
|
|
|
|
for(i = 0; i < 6; i++) {
|
|
|
|
if(!srvList[i][0]) break;
|
|
|
|
s_transporter.srvListPtr[i] = srvList[i];
|
|
|
|
}
|
|
|
|
s_transporter.srvListPtr[i+1] = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
===============
|
|
|
|
UI_TransporterMenu
|
|
|
|
===============
|
|
|
|
*/
|
|
|
|
void UI_TransporterMenu (int trNum)
|
|
|
|
{
|
|
|
|
if ( !trNum )
|
|
|
|
return;
|
|
|
|
|
|
|
|
memset( &s_transporter, 0, sizeof( s_transporter ) );
|
|
|
|
|
|
|
|
s_transporter.targetEntID = trNum;
|
|
|
|
|
|
|
|
uis.menusp = 0;
|
|
|
|
|
|
|
|
ingameFlag = qtrue; // true when in game menu is in use
|
|
|
|
|
|
|
|
Mouse_Show();
|
|
|
|
|
|
|
|
UI_TransporterMenu_Cache();
|
|
|
|
|
|
|
|
SrvData_Init();
|
|
|
|
|
|
|
|
TransporterMenu_Init();
|
|
|
|
|
|
|
|
UI_PushMenu( &s_transporter.menu );
|
|
|
|
|
|
|
|
Menu_AdjustCursor( &s_transporter.menu, 1 );
|
|
|
|
}
|