rpgxef/code/ui/ui_ingame.c
Harry Young c9a8d31f3d More work on admin UI
I had some issues with the standalone Welcome Page so I modified the Login Page to include this and moved the Admin-Check there as well.
I altered the Defines in ui_admin.c and updated on other positions where required so far (I'll adapt the remainder as time comes)
I enabled subfolders for the Music-UI (I don't see why this is a problem at all)
I the Ingame menu I completely disabled the HC-Butttons.
Added Logout-Ability for userlogion (adapted from adminlogin)

Signed-off-by: Harry Young <hendrik.gerritzen@googlemail.com>
2013-03-20 11:33:29 +01:00

1265 lines
42 KiB
C

// Copyright (C) 1999-2000 Id Software, Inc.
//
/*
=======================================================================
INGAME MENU
=======================================================================
*/
#include "ui_local.h"
void UI_SetupWeaponsMenu( void );
int ingameFlag = qfalse; // true when in game menu is in use
#define INGAME_MENU_VERTICAL_SPACING 24 // 28 // Marcin
//#define ID_TEAM 10
#define ID_ADDBOTS 11
#define ID_REMOVEBOTS 12
#define ID_SETUP 13
#define ID_SERVERINFO 14
#define ID_LEAVEARENA 15
#define ID_RESTART 16
#define ID_QUIT 17
#define ID_RESUME 18
#define ID_TEAMORDERS 19
#define ID_SCREENSHOT 20
#define ID_INGAMEMENU 125
#define ID_INGAME_QUIT_YES 131
#define ID_INGAME_QUIT_NO 132
#define ID_MODEL 21
#define ID_INMATCH 22
#define ID_SPECTATE 23
#define ID_JOIN 24
#define ID_EMOTES 25
#define ID_ADMIN 26
//#define MAX_NAMELENGTH 24
#define ID_PLAYER_SETTINGS 27
#define ID_PLAYER_MODEL 28
#define ID_MOTD 29
#define ID_RESPAWN 30
typedef struct
{
menuframework_s menu;
//menubitmap_s team;
menubitmap_s setup;
menubitmap_s server;
menubitmap_s leave;
menubitmap_s restart;
menubitmap_s addbots;
menubitmap_s removebots;
menubitmap_s teamorders;
menubitmap_s screenshot;
menubitmap_s resume;
qhandle_t graphic_12_8_LU;
qhandle_t graphic_12_8_LL;
qhandle_t graphic_12_8_RU;
qhandle_t graphic_12_8_RL;
/*menufield_s playerName;
menulist_s pClass;
menulist_s pRank;*/
int pclass;
menubitmap_s psettings;
menubitmap_s pmodel;
menubitmap_s join;
menubitmap_s spectate;
menubitmap_s emotes;
menubitmap_s admin;
menubitmap_s login;
menubitmap_s motd;
menubitmap_s respawn;
menubitmap_s playermdl;
char playerModel[MAX_QPATH];
playerInfo_t playerinfo;
int prevMenu;
qboolean isAdmin;
int isSQL;
} ingamemenu_t;
static ingamemenu_t s_ingame;
/*static int ingame_buttons[10][2] =
{
{152,220},
{152,220 + INGAME_MENU_VERTICAL_SPACING},
{152,220 + (INGAME_MENU_VERTICAL_SPACING *2)},
{152,220 + (INGAME_MENU_VERTICAL_SPACING *3)},
{152,220 + (INGAME_MENU_VERTICAL_SPACING *4)},
{368,220},
{368,220 + INGAME_MENU_VERTICAL_SPACING},
{368,220 + (INGAME_MENU_VERTICAL_SPACING *2)},
{368,220 + (INGAME_MENU_VERTICAL_SPACING *3)},
{368,220 + (INGAME_MENU_VERTICAL_SPACING *4)},
};*/
typedef struct
{
menuframework_s menu;
menubitmap_s ingamemenu;
menubitmap_s no;
menubitmap_s yes;
} ingamequitmenu_t;
static ingamequitmenu_t s_ingamequit;
/*
=================
Player_DrawPlayer
RPG-X: TiM - Modified it so it actually fit in the box,
and had an appropriately set FOV
=================
*/
static void IngamePlayer_DrawPlayer( void *self )
{
menubitmap_s *b;
vec3_t viewangles;
vec3_t origin = {-20, 5, -4 }; //-3.8
char buf[MAX_QPATH];
trap_Cvar_VariableStringBuffer( "model", buf, MAX_QPATH );
if ( Q_stricmp( buf, s_ingame.playerModel ) ) {
UI_PlayerInfo_SetModel( &s_ingame.playerinfo, buf );
strcpy( s_ingame.playerModel, buf );
viewangles[YAW] = uis.lastYaw;
viewangles[PITCH] = 0;
viewangles[ROLL] = 0;
s_ingame.playerinfo.randomEmote = qtrue;
UI_PlayerInfo_SetInfo( &s_ingame.playerinfo, BOTH_STAND1, BOTH_STAND1, viewangles, origin, WP_0, trap_Cvar_VariableValue( "height" ), trap_Cvar_VariableValue( "weight" ), qfalse );
}
b = &s_ingame.playermdl;
UI_DrawPlayer( b->generic.x, b->generic.y, b->width, b->height, origin, &s_ingame.playerinfo, uis.realtime );
}
/*
=================
Player_ModelEvent
=================
*/
static void Player_ModelEvent ( void *self, int result ) {
if ( result == QM_ACTIVATED ) {
uis.cursorpx = uis.cursorx;
uis.spinView = qtrue;
}
}
/*
=================
InGame_RestartAction
=================
*/
static void InGame_RestartAction( qboolean result )
{
if( !result )
{
return;
}
UI_PopMenu();
trap_Cmd_ExecuteText( EXEC_APPEND, "callvote map_restart 0\n" );
}
/*
=================
InGame_LeaveAction
=================
*/
void InGame_LeaveAction( qboolean result )
{
if( !result )
{
return;
}
//trap_Cvar_Set ("rpg_playIntro", "0");
UI_PopMenu();
trap_Cmd_ExecuteText( EXEC_APPEND, "disconnect\n" );
}
/*
=================
InGame_Event
=================
*/
void InGame_Event( void *ptr, int notification )
{
if( notification != QM_ACTIVATED )
{
return;
}
switch( ((menucommon_s*)ptr)->id )
{
// case ID_TEAM:
//// InGame_SaveChanges();
// UI_TeamMainMenu();
// break;
case ID_SETUP:
// InGame_SaveChanges();
UI_SetupWeaponsMenu();
break;
case ID_SCREENSHOT:
// InGame_SaveChanges();
UI_ForceMenuOff();
trap_Cmd_ExecuteText( EXEC_APPEND, "wait; wait; wait; wait; screenshot\n" );
break;
case ID_LEAVEARENA:
// InGame_SaveChanges();
UI_ConfirmMenu( menu_normal_text[MNT_LEAVE_MATCH], 0, InGame_LeaveAction );
// trap_Cmd_ExecuteText( EXEC_APPEND, "disconnect\n" );
break;
case ID_RESTART:
// InGame_SaveChanges();
UI_ConfirmMenu( menu_normal_text[MNT_RESTART_MATCH], 0, InGame_RestartAction );
break;
case ID_QUIT:
// InGame_SaveChanges();
UI_QuitMenu();
// UI_ConfirmMenu( "EXIT GAME?", NULL, InGame_QuitAction );
break;
case ID_SERVERINFO:
// InGame_SaveChanges();
UI_ServerInfoMenu();
break;
case ID_ADDBOTS:
// InGame_SaveChanges();
UI_AddBotsMenu();
break;
case ID_REMOVEBOTS:
// InGame_SaveChanges();
UI_RemoveBotsMenu();
break;
case ID_TEAMORDERS:
// InGame_SaveChanges();
UI_TeamOrdersMenu(0);
break;
case ID_RESUME:
// InGame_SaveChanges();
UI_PopMenu();
break;
case ID_PLAYER_SETTINGS:
UI_PlayerSettingsMenu( s_ingame.prevMenu );
break;
case ID_PLAYER_MODEL:
// UI_PopMenu();
// PlayerSettings_SaveChanges();
UI_PlayerModelMenu( s_ingame.prevMenu );
break;
case ID_JOIN:
// InGame_SaveChanges();
trap_Cmd_ExecuteText( EXEC_APPEND, "cmd team free\n" );
UI_ForceMenuOff();
break;
case ID_SPECTATE:
// InGame_SaveChanges();
trap_Cmd_ExecuteText( EXEC_APPEND, "cmd team spectator\n" );
UI_ForceMenuOff();
break;
case ID_EMOTES:
UI_EmotesMenu( qfalse );
break;
case ID_ADMIN:
UI_LoginMenu(qfalse);
break;
case ID_MOTD: // RPG-X | Marcin | 03/01/2008
UI_ForceMenuOff();
UI_MotdMenu();
break;
case ID_RESPAWN: // RPG-X | Marcin | 03/01/2008
//trap_Cmd_ExecuteText( EXEC_APPEND, "cmd team spectator\n" );
//trap_Cmd_ExecuteText( EXEC_APPEND, "cmd team free\n" );
trap_Cmd_ExecuteText( EXEC_APPEND, "respawn\n" );
UI_ForceMenuOff();
break;
}
}
/*
=================
UI_InGameMenu_Draw
=================
*/
static void UI_InGameMenu_Draw( void )
{
char* playerClass;
char string[256];
float scale;
int y=191;
int yOffset = 23;
// char* team;
playerClass = uis.classData[s_ingame.pclass].classNameFull;
/*switch ( s_ingame.pclass ) {
case PC_ADMIN:
playerClass = "Admin";
break;
case PC_SECURITY:
playerClass = "Security";
break;
case PC_ALIEN:
playerClass = "Alien";
break;
case PC_COMMAND:
playerClass = "Command";
break;
case PC_SCIENCE:
playerClass = "Science";
break;
case PC_ENGINEER:
playerClass = "Engineer";
break;
case PC_ALPHAOMEGA22:
playerClass = "Marine";
break;
case PC_N00B:
playerClass = "n00b";
break;
case PC_NOCLASS:
default:
playerClass = "Unknown";
break;
}*/
UI_MenuFrame(&s_ingame.menu);
// Rounded button that takes place of INGAME MENU button
trap_R_SetColor( colorTable[CT_DKPURPLE1]);
//UI_DrawHandlePic( 482, 136, MENU_BUTTON_MED_WIDTH - 22, MENU_BUTTON_MED_HEIGHT, uis.whiteShader);
UI_DrawHandlePic( 460 + MENU_BUTTON_MED_WIDTH - 6, 136, -19, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd); //right
trap_R_SetColor( colorTable[CT_LTBROWN1]);
UI_DrawHandlePic(30,203, 47, 186, uis.whiteShader); // Long left column square on bottom 3rd
// Left rounded ends for buttons
trap_R_SetColor( colorTable[CT_MDGREY]);
/*UI_DrawHandlePic(s_ingame.team.generic.x - 14, s_ingame.team.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);*/
UI_DrawHandlePic(s_ingame.addbots.generic.x - 14, s_ingame.addbots.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
UI_DrawHandlePic(s_ingame.removebots.generic.x - 14, s_ingame.removebots.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
trap_R_SetColor( colorTable[CT_DKPURPLE1]);
// UI_DrawHandlePic(s_ingame.teamorders.generic.x - 14, s_ingame.teamorders.generic.y,
// MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
UI_DrawHandlePic(s_ingame.setup.generic.x - 14, s_ingame.setup.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
UI_DrawHandlePic(s_ingame.server.generic.x - 14, s_ingame.server.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
UI_DrawHandlePic(s_ingame.restart.generic.x - 14, s_ingame.restart.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT + 6, uis.graphicButtonLeftEnd);
UI_DrawHandlePic(s_ingame.resume.generic.x - 14, s_ingame.resume.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT + 6, uis.graphicButtonLeftEnd);
UI_DrawHandlePic( s_ingame.emotes.generic.x - 14, s_ingame.emotes.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd );
UI_DrawHandlePic( s_ingame.motd.generic.x - 14, s_ingame.motd.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd );
UI_DrawHandlePic( s_ingame.respawn.generic.x - 14, s_ingame.respawn.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd );
UI_DrawHandlePic( s_ingame.admin.generic.x - 14, s_ingame.admin.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd );
trap_R_SetColor( colorTable[CT_VDKRED1] );
UI_DrawHandlePic(s_ingame.leave.generic.x - 14, s_ingame.leave.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT + 6, uis.graphicButtonLeftEnd);
trap_R_SetColor( colorTable[CT_DKPURPLE1]);
UI_DrawHandlePic(s_ingame.spectate.generic.x - 14, s_ingame.spectate.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT + 6, uis.graphicButtonLeftEnd);
UI_DrawHandlePic(s_ingame.join.generic.x - 14, s_ingame.join.generic.y,
MENU_BUTTON_MED_HEIGHT, MENU_BUTTON_MED_HEIGHT + 6, uis.graphicButtonLeftEnd);
UI_DrawProportionalString( 74, 66, "15567",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
UI_DrawProportionalString( 74, 84, "2439",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
UI_DrawProportionalString( 74, 188, "3814",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
UI_DrawProportionalString( 74, 206, "4800",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
UI_DrawProportionalString( 74, 395, "5671-1",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
//UI_DrawProportionalString( 584, 142, "1219",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
trap_R_SetColor( colorTable[CT_LTBLUE1]);
UI_DrawHandlePic( 81, 228, 165, 1, uis.whiteShader); //296
UI_DrawHandlePic( 83, 293, 161, 1, uis.whiteShader);
UI_DrawHandlePic( 81, 365, 165, 1, uis.whiteShader);
//UI_DrawHandlePic( 83, 169, 1, 256, uis.whiteShader);
UI_DrawHandlePic( 136, 162, 1, 266, uis.whiteShader); //132
UI_DrawHandlePic( 186, 162, 1, 266, uis.whiteShader); //181
//Left Bracket around model picture
trap_R_SetColor( colorTable[CT_DKPURPLE2]);
UI_DrawHandlePic(81,158, 16, 16, uis.graphicBracket1CornerLU);
UI_DrawHandlePic(81,174, 8, 94, uis.whiteShader);
trap_R_SetColor( colorTable[CT_DKBROWN1]);
UI_DrawHandlePic(81,271, 8, 11, uis.whiteShader);
trap_R_SetColor( colorTable[CT_LTORANGE]);
UI_DrawHandlePic(83,285, 6, 21, uis.whiteShader);
trap_R_SetColor( colorTable[CT_DKBROWN1]);
UI_DrawHandlePic(81,310, 8, 11, uis.whiteShader);
trap_R_SetColor( colorTable[CT_DKPURPLE2]);
UI_DrawHandlePic(81,324, 8, 94, uis.whiteShader);
UI_DrawHandlePic(81,418, 16, -16, uis.graphicBracket1CornerLU); //LD
//Right Bracket around model picture
trap_R_SetColor( colorTable[CT_DKPURPLE2]);
UI_DrawHandlePic(230,158, -16, 16, uis.graphicBracket1CornerLU); //375 //RU -200
UI_DrawHandlePic(238,174, 8, 94, uis.whiteShader); //383
trap_R_SetColor( colorTable[CT_DKBROWN1]);
UI_DrawHandlePic(238,271, 8, 11, uis.whiteShader);
trap_R_SetColor( colorTable[CT_LTORANGE]);
UI_DrawHandlePic(238,285, 6, 21, uis.whiteShader);
trap_R_SetColor( colorTable[CT_DKBROWN1]);
UI_DrawHandlePic(238,310, 8, 11, uis.whiteShader);
trap_R_SetColor( colorTable[CT_DKPURPLE2]);
UI_DrawHandlePic(238,324, 8, 94, uis.whiteShader);
UI_DrawHandlePic(230,418, -16, -16, uis.graphicBracket1CornerLU); //375 //RD
UI_DrawProportionalString( 271, 165, menu_normal_text[MNT_PLAYERSTATS], UI_SMALLFONT, colorTable[CT_LTGOLD1]);
//ghey hack to stop Com_sprintf whining if we overflow the buffer lol
Com_sprintf( string, sizeof(string), "%s: %-25.25s", menu_normal_text[MNT_NAME], UI_Cvar_VariableString("name") );
//Q_strncpyz( string, string, 25 );
UI_DrawProportionalString( 270, y, string, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
y+=yOffset;
Com_sprintf( string, sizeof(string), "%s: %-25.25s", menu_normal_text[MNT_CLASS], playerClass );
//Q_strncpyz( string, string, 25 );
UI_DrawProportionalString( 270, y, string, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
scale = trap_Cvar_VariableValue( "height" ) * (float)BASE_HEIGHT;
Com_sprintf( string, sizeof(string), "%s: %3.2f%s", menu_normal_text[MNT_HEIGHT], scale, HEIGHT_UNIT );
//Q_strncpyz( string, string, 25 );
UI_DrawProportionalString( 432, y, string, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
y+=yOffset;
Com_sprintf( string, sizeof(string), "%s: %-25.25s", menu_normal_text[MNT_RANK], uis.rankSet.rankNames[uis.currentRank].formalName );
//Q_strncpyz( string, string, 25 );
UI_DrawProportionalString( 270, y, string, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
scale = trap_Cvar_VariableValue( "height" ) * trap_Cvar_VariableValue( "weight" ) * (float)BASE_WEIGHT;
if ( s_ingame.playerinfo.gender == GENDER_FEMALE )
scale *= (float)FEMALE_OFFSET;
Com_sprintf( string, sizeof(string), "%s: %3.2f%s", menu_normal_text[MNT_WEIGHT], scale, WEIGHT_UNIT );
//Q_strncpyz( string, string, 25 );
UI_DrawProportionalString( 432, y, string, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
y+=yOffset;
Com_sprintf( string, sizeof(string), "%s: %-25.25s", menu_normal_text[MNT_AGE], UI_Cvar_VariableString("age") );
//Q_strncpyz( string, string, 25 );
UI_DrawProportionalString( 270, y, string, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
Com_sprintf( string, sizeof(string), "%s: %-25.25s", menu_normal_text[MNT_RACE], UI_Cvar_VariableString("race") );
//Q_strncpyz( string, string, 25 );
UI_DrawProportionalString( 432, y, string, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
// UI_DrawProportionalString( 319, 193, UI_Cvar_VariableString("name"), UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
// UI_DrawProportionalString( 319, 215, pClass, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
// UI_DrawProportionalString( 319, 236, pRank, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
// UI_DrawProportionalString( 319, 257, pModel, UI_LEFT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
UI_DrawProportionalString( 271, 309, menu_normal_text[MNT_PLAYERSTATUS],UI_SMALLFONT, colorTable[CT_LTGOLD1]);
// bracket around the buttons
trap_R_SetColor( colorTable[CT_DKPURPLE2]);
UI_DrawHandlePic( 252, 165, 16, 32, s_ingame.graphic_12_8_LU );
UI_DrawHandlePic( 252, 270, 16, 32, s_ingame.graphic_12_8_LL );
UI_DrawHandlePic( 587, 165, 16, 32, s_ingame.graphic_12_8_RU );
UI_DrawHandlePic( 587, 270, 16, 32, s_ingame.graphic_12_8_RL );
UI_DrawHandlePic( 252, 189, 8, 20, uis.whiteShader ); //25 //Left upper rect
UI_DrawHandlePic( 252, 256, 8, 22, uis.whiteShader ); //Left lower rect
UI_DrawHandlePic( 595, 189, 8, 20, uis.whiteShader ); //right up
UI_DrawHandlePic( 595, 256, 8, 22, uis.whiteShader ); //right down
UI_DrawHandlePic( (3 + 271 + (UI_ProportionalStringWidth(menu_normal_text[MNT_PLAYERSTATS],UI_SMALLFONT))), 165, ((313 - (UI_ProportionalStringWidth(menu_normal_text[MNT_PLAYERSTATS],UI_SMALLFONT))) - 3), 18, uis.whiteShader );
//bracket around the main buttons
trap_R_SetColor( colorTable[CT_DKPURPLE2]);
UI_DrawHandlePic( 440, 309, 16, 32, s_ingame.graphic_12_8_LU );
UI_DrawHandlePic( 440, 332, 8, 25, uis.whiteShader );
UI_DrawHandlePic( 440, 408, 8, 26, uis.whiteShader );
//brackets around spectate/rejoin
UI_DrawHandlePic(
(3 + 271 + (UI_ProportionalStringWidth(menu_normal_text[MNT_PLAYERSTATUS],UI_SMALLFONT))),
309,
((144 - (UI_ProportionalStringWidth(menu_normal_text[MNT_PLAYERSTATUS],UI_SMALLFONT))) - 3),
18,
uis.whiteShader );
UI_DrawHandlePic( 252, 309, 16, 32, s_ingame.graphic_12_8_LU ); //corners
UI_DrawHandlePic( 252, 402, 16, 32, s_ingame.graphic_12_8_LL );
UI_DrawHandlePic( 418, 309, 16, 32, s_ingame.graphic_12_8_RU );
UI_DrawHandlePic( 418, 402, 16, 32, s_ingame.graphic_12_8_RL );
UI_DrawHandlePic( 252, 333, 8, 20, uis.whiteShader ); //topside
UI_DrawHandlePic( 426, 333, 8, 20, uis.whiteShader );
UI_DrawHandlePic( 252, 390, 8, 20, uis.whiteShader ); //underside
UI_DrawHandlePic( 426, 390, 8, 20, uis.whiteShader );
// dark blue
trap_R_SetColor( colorTable[CT_DKBROWN1]);
UI_DrawHandlePic( 404, 284, 47, 18, uis.whiteShader ); //main bars along the bottom //257
// UI_DrawHandlePic( 496, 284, 88, 18, uis.whiteShader );
UI_DrawHandlePic( 252, 212, 8, 41, uis.whiteShader ); //dark blue blocks
UI_DrawHandlePic( 595, 212, 8, 41, uis.whiteShader );
//main buttons
UI_DrawHandlePic( 440, 360, 8, 45, uis.whiteShader );
UI_DrawHandlePic( 459, 309, 132, 18, uis.whiteShader );
UI_DrawHandlePic( 460 + MENU_BUTTON_MED_WIDTH - 6, 309, -19, 18, uis.graphicButtonLeftEnd);
//team buttons brackets
UI_DrawHandlePic( 252, 356, 8, 31, uis.whiteShader );
UI_DrawHandlePic( 426, 356, 8, 31, uis.whiteShader );
UI_DrawHandlePic( 271, 416, 144, 18, uis.whiteShader );
//text
UI_DrawProportionalString( 570, 314, "4516", UI_TINYFONT, colorTable[CT_BLACK]);
// standard menu drawing
Menu_Draw( &s_ingame.menu );
}
/*
=================
InGame_MenuInit
=================
*/
void InGame_MenuInit( void )
{
int y,x;
uiClientState_t cs;
char info[MAX_INFO_STRING];
char info_server[MAX_INFO_STRING];
int team;
trap_GetClientState( &cs );
trap_GetConfigString( CS_PLAYERS + cs.clientNum, info, MAX_INFO_STRING );
memset( &s_ingame, 0 ,sizeof(ingamemenu_t) );
InGame_Cache();
uis.lastYaw = 200;
//TiM - Store current class
s_ingame.pclass = atoi( Info_ValueForKey( info, "p" ) );
//TiM: flush the ranks data
trap_GetConfigString( CS_SERVERINFO, info_server, MAX_INFO_STRING );
UI_InitRanksData( Info_ValueForKey( info_server, "rpg_rankSet" ) );
UI_InitClassData( Info_ValueForKey( info_server, "rpg_classSet" ) );
//TiM: Reset Class Data
//UI_LoadClassString();
// Player_MenuInit();
s_ingame.menu.wrapAround = qtrue;
s_ingame.menu.fullscreen = qtrue;
s_ingame.menu.descX = MENU_DESC_X;
s_ingame.menu.descY = MENU_DESC_Y;
s_ingame.menu.draw = UI_InGameMenu_Draw;
s_ingame.menu.titleX = MENU_TITLE_X;
s_ingame.menu.titleY = MENU_TITLE_Y;
s_ingame.menu.titleI = MNT_INGAMEMAIN_TITLE;
s_ingame.menu.footNoteEnum = MNT_INGAME_MENU;
x = 284; //305
y = 62; //196
/*s_ingame.team.generic.type = MTYPE_BITMAP;
s_ingame.team.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.team.generic.x = x;
s_ingame.team.generic.y = y;
s_ingame.team.generic.id = ID_TEAM;
s_ingame.team.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.team.generic.callback = InGame_Event;
s_ingame.team.width = MENU_BUTTON_MED_WIDTH;
s_ingame.team.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.team.color = CT_DKPURPLE1;
s_ingame.team.color2 = CT_LTPURPLE1;
s_ingame.team.textX = MENU_BUTTON_TEXT_X;
s_ingame.team.textY = MENU_BUTTON_TEXT_Y;
s_ingame.team.textEnum = MBT_TEAMCLASS;
s_ingame.team.textcolor = CT_BLACK;
s_ingame.team.textcolor2 = CT_WHITE;*/
// y += INGAME_MENU_VERTICAL_SPACING;
s_ingame.addbots.generic.type = MTYPE_BITMAP;
s_ingame.addbots.generic.flags = QMF_GRAYED | QMF_INACTIVE;
s_ingame.addbots.generic.x = x;
s_ingame.addbots.generic.y = y;
s_ingame.addbots.generic.id = ID_ADDBOTS;
s_ingame.addbots.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.addbots.generic.callback = InGame_Event;
s_ingame.addbots.width = MENU_BUTTON_MED_WIDTH;
s_ingame.addbots.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.addbots.color = CT_DKPURPLE1;
s_ingame.addbots.color2 = CT_LTPURPLE1;
s_ingame.addbots.textX = MENU_BUTTON_TEXT_X;
s_ingame.addbots.textY = MENU_BUTTON_TEXT_Y;
s_ingame.addbots.textEnum = MBT_INGAMEADDSIMULANTS;
s_ingame.addbots.textcolor = CT_BLACK;
s_ingame.addbots.textcolor2 = CT_WHITE;
y += INGAME_MENU_VERTICAL_SPACING;
s_ingame.removebots.generic.type = MTYPE_BITMAP;
s_ingame.removebots.generic.flags = QMF_GRAYED | QMF_INACTIVE;
s_ingame.removebots.generic.x = x;
s_ingame.removebots.generic.y = y;
s_ingame.removebots.generic.id = ID_REMOVEBOTS;
s_ingame.removebots.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.removebots.generic.callback = InGame_Event;
s_ingame.removebots.width = MENU_BUTTON_MED_WIDTH;
s_ingame.removebots.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.removebots.color = CT_DKPURPLE1;
s_ingame.removebots.color2 = CT_LTPURPLE1;
s_ingame.removebots.textX = MENU_BUTTON_TEXT_X;
s_ingame.removebots.textY = MENU_BUTTON_TEXT_Y;
s_ingame.removebots.textEnum = MBT_INGAMEREMOVESIMULANTS;
s_ingame.removebots.textcolor = CT_BLACK;
s_ingame.removebots.textcolor2 = CT_WHITE;
y += INGAME_MENU_VERTICAL_SPACING;
s_ingame.respawn.generic.type = MTYPE_BITMAP;
s_ingame.respawn.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.respawn.generic.x = x;
s_ingame.respawn.generic.y = y;
s_ingame.respawn.generic.id = ID_RESPAWN;
s_ingame.respawn.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.respawn.generic.callback = InGame_Event;
s_ingame.respawn.width = MENU_BUTTON_MED_WIDTH;
s_ingame.respawn.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.respawn.color = CT_DKPURPLE1;
s_ingame.respawn.color2 = CT_LTPURPLE1;
s_ingame.respawn.textX = MENU_BUTTON_TEXT_X;
s_ingame.respawn.textY = MENU_BUTTON_TEXT_Y;
s_ingame.respawn.textEnum = MBT_RESPAWN;
s_ingame.respawn.textcolor = CT_BLACK;
s_ingame.respawn.textcolor2 = CT_WHITE;
x = 448;
y = 62;
s_ingame.emotes.generic.type = MTYPE_BITMAP;
s_ingame.emotes.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.emotes.generic.x = x;
s_ingame.emotes.generic.y = y;
s_ingame.emotes.generic.id = ID_EMOTES;
s_ingame.emotes.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.emotes.generic.callback = InGame_Event;
s_ingame.emotes.width = MENU_BUTTON_MED_WIDTH;
s_ingame.emotes.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.emotes.color = CT_DKPURPLE1;
s_ingame.emotes.color2 = CT_LTPURPLE1;
s_ingame.emotes.textX = MENU_BUTTON_TEXT_X;
s_ingame.emotes.textY = MENU_BUTTON_TEXT_Y;
s_ingame.emotes.textEnum = MBT_EMOTES_MENU;
s_ingame.emotes.textcolor = CT_BLACK;
s_ingame.emotes.textcolor2 = CT_WHITE;
y += INGAME_MENU_VERTICAL_SPACING;
s_ingame.admin.generic.type = MTYPE_BITMAP;
s_ingame.admin.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.admin.generic.x = x;
s_ingame.admin.generic.y = y;
s_ingame.admin.generic.id = ID_ADMIN;
s_ingame.admin.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.admin.generic.callback = InGame_Event;
s_ingame.admin.width = MENU_BUTTON_MED_WIDTH;
s_ingame.admin.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.admin.color = CT_DKPURPLE1;
s_ingame.admin.color2 = CT_LTPURPLE1;
s_ingame.admin.textX = MENU_BUTTON_TEXT_X;
s_ingame.admin.textY = MENU_BUTTON_TEXT_Y;
s_ingame.admin.textEnum = MBT_ADMIN_MENU;
s_ingame.admin.textcolor = CT_BLACK;
s_ingame.admin.textcolor2 = CT_WHITE;
/*y += INGAME_MENU_VERTICAL_SPACING;
s_ingame.teamorders.generic.type = MTYPE_BITMAP;
s_ingame.teamorders.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.teamorders.generic.x = x;
s_ingame.teamorders.generic.y = y;
s_ingame.teamorders.generic.id = ID_TEAMORDERS;
s_ingame.teamorders.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.teamorders.generic.callback = InGame_Event;
s_ingame.teamorders.width = MENU_BUTTON_MED_WIDTH;
s_ingame.teamorders.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.teamorders.color = CT_DKPURPLE1;
s_ingame.teamorders.color2 = CT_LTPURPLE1;
s_ingame.teamorders.textX = MENU_BUTTON_TEXT_X;
s_ingame.teamorders.textY = MENU_BUTTON_TEXT_Y;
s_ingame.teamorders.textEnum = MBT_INGAMETEAMORDERS;
s_ingame.teamorders.textcolor = CT_BLACK;
s_ingame.teamorders.textcolor2 = CT_WHITE;
// make sure it's a team game
trap_GetConfigString( CS_SERVERINFO, info, sizeof(info) );
if( (atoi( Info_ValueForKey( info, "g_gametype" ) )) < GT_TEAM)
{
s_ingame.teamorders.generic.flags |= QMF_GRAYED;
}
else
{
trap_GetClientState( &cs );
trap_GetConfigString( CS_PLAYERS + cs.clientNum, info, MAX_INFO_STRING );
team = atoi( Info_ValueForKey( info, "t" ) );
if( team == TEAM_SPECTATOR )
{
s_ingame.teamorders.generic.flags |= QMF_GRAYED;
}
}*/
x = 121;
y = 62;
s_ingame.setup.generic.type = MTYPE_BITMAP;
s_ingame.setup.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.setup.generic.x = x;
s_ingame.setup.generic.y = y;
s_ingame.setup.generic.id = ID_SETUP;
s_ingame.setup.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.setup.generic.callback = InGame_Event;
s_ingame.setup.width = MENU_BUTTON_MED_WIDTH;
s_ingame.setup.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.setup.color = CT_DKPURPLE1;
s_ingame.setup.color2 = CT_LTPURPLE1;
s_ingame.setup.textX = MENU_BUTTON_TEXT_X;
s_ingame.setup.textY = MENU_BUTTON_TEXT_Y;
s_ingame.setup.textEnum = MBT_INGAMESETUP;
s_ingame.setup.textcolor = CT_BLACK;
s_ingame.setup.textcolor2 = CT_WHITE;
y += INGAME_MENU_VERTICAL_SPACING;
s_ingame.server.generic.type = MTYPE_BITMAP;
s_ingame.server.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.server.generic.x = x;
s_ingame.server.generic.y = y;
s_ingame.server.generic.id = ID_SERVERINFO;
s_ingame.server.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.server.generic.callback = InGame_Event;
s_ingame.server.width = MENU_BUTTON_MED_WIDTH;
s_ingame.server.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.server.color = CT_DKPURPLE1;
s_ingame.server.color2 = CT_LTPURPLE1;
s_ingame.server.textX = MENU_BUTTON_TEXT_X;
s_ingame.server.textY = MENU_BUTTON_TEXT_Y;
s_ingame.server.textEnum = MBT_INGAMESERVERDATA;
s_ingame.server.textcolor = CT_BLACK;
s_ingame.server.textcolor2 = CT_WHITE;
// RPG-X | Marcin | 03/01/2009
y += INGAME_MENU_VERTICAL_SPACING;
s_ingame.motd.generic.type = MTYPE_BITMAP;
s_ingame.motd.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.motd.generic.x = x;
s_ingame.motd.generic.y = y;
s_ingame.motd.generic.id = ID_MOTD;
s_ingame.motd.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.motd.generic.callback = InGame_Event;
s_ingame.motd.width = MENU_BUTTON_MED_WIDTH;
s_ingame.motd.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.motd.color = CT_DKPURPLE1;
s_ingame.motd.color2 = CT_LTPURPLE1;
s_ingame.motd.textX = MENU_BUTTON_TEXT_X;
s_ingame.motd.textY = MENU_BUTTON_TEXT_Y;
s_ingame.motd.textEnum = MBT_MOTD;
s_ingame.motd.textcolor = CT_BLACK;
s_ingame.motd.textcolor2 = CT_WHITE;
y = 339; //365 //390
x = 469;
s_ingame.resume.generic.type = MTYPE_BITMAP;
s_ingame.resume.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.resume.generic.x = x;
s_ingame.resume.generic.y = y; //y
s_ingame.resume.generic.id = ID_RESUME;
s_ingame.resume.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.resume.generic.callback = InGame_Event;
s_ingame.resume.width = MENU_BUTTON_MED_WIDTH;
s_ingame.resume.height = MENU_BUTTON_MED_HEIGHT + 6;
s_ingame.resume.color = CT_DKPURPLE1;
s_ingame.resume.color2 = CT_LTPURPLE1;
s_ingame.resume.textX = MENU_BUTTON_TEXT_X;
s_ingame.resume.textY = MENU_BUTTON_TEXT_Y;
s_ingame.resume.textEnum = MBT_INGAMERESUME;
s_ingame.resume.textcolor = CT_BLACK;
s_ingame.resume.textcolor2 = CT_WHITE;
y += 31;
s_ingame.restart.generic.type = MTYPE_BITMAP;
s_ingame.restart.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.restart.generic.x = x; //305
s_ingame.restart.generic.y = y; //y
s_ingame.restart.generic.id = ID_RESTART;
s_ingame.restart.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.restart.generic.callback = InGame_Event;
s_ingame.restart.width = MENU_BUTTON_MED_WIDTH;
s_ingame.restart.height = MENU_BUTTON_MED_HEIGHT + 6;
s_ingame.restart.color = CT_DKPURPLE1;
s_ingame.restart.color2 = CT_LTPURPLE1;
s_ingame.restart.textX = MENU_BUTTON_TEXT_X;
s_ingame.restart.textY = MENU_BUTTON_TEXT_Y;
s_ingame.restart.textEnum = MBT_INGAMERESTART;
s_ingame.restart.textcolor = CT_BLACK;
s_ingame.restart.textcolor2 = CT_WHITE;
if( !trap_Cvar_VariableValue( "g_allowVote" ) )
{
s_ingame.restart.generic.flags |= QMF_GRAYED;
}
y += 31;
s_ingame.leave.generic.type = MTYPE_BITMAP;
s_ingame.leave.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.leave.generic.x = x; //126 //306
s_ingame.leave.generic.y = y;
s_ingame.leave.generic.id = ID_LEAVEARENA;
s_ingame.leave.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.leave.generic.callback = InGame_Event;
s_ingame.leave.width = MENU_BUTTON_MED_WIDTH;
s_ingame.leave.height = MENU_BUTTON_MED_HEIGHT + 6;
s_ingame.leave.color = CT_VDKRED1;
s_ingame.leave.color2 = CT_DKRED1;
s_ingame.leave.textX = MENU_BUTTON_TEXT_X;
s_ingame.leave.textY = MENU_BUTTON_TEXT_Y;
s_ingame.leave.textEnum = MBT_INGAMELEAVE;
s_ingame.leave.textcolor = CT_BLACK;
s_ingame.leave.textcolor2 = CT_WHITE;
s_ingame.screenshot.generic.type = MTYPE_BITMAP;
s_ingame.screenshot.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
//s_ingame.screenshot.generic.x = 477;
//s_ingame.screenshot.generic.y = 82;
s_ingame.screenshot.generic.x = 482;
s_ingame.screenshot.generic.y = 136;
s_ingame.screenshot.generic.name = GRAPHIC_SQUARE;
s_ingame.screenshot.generic.id = ID_SCREENSHOT;
s_ingame.screenshot.generic.callback = InGame_Event;
//s_ingame.screenshot.width = MENU_BUTTON_MED_WIDTH;
s_ingame.screenshot.width = 107;
//s_ingame.screenshot.height = 36;
s_ingame.screenshot.height = 18;
s_ingame.screenshot.color = CT_DKPURPLE1;
s_ingame.screenshot.color2 = CT_LTPURPLE1;
s_ingame.screenshot.textX = MENU_BUTTON_TEXT_X;
s_ingame.screenshot.textY = MENU_BUTTON_TEXT_Y;
s_ingame.screenshot.textEnum = MBT_SCREENSHOT;
s_ingame.screenshot.textcolor = CT_BLACK;
s_ingame.screenshot.textcolor2 = CT_WHITE;
s_ingame.psettings.generic.type = MTYPE_BITMAP;
s_ingame.psettings.generic.name = GRAPHIC_SQUARE;
s_ingame.psettings.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.psettings.generic.id = ID_PLAYER_SETTINGS;
s_ingame.psettings.generic.callback = InGame_Event;
s_ingame.psettings.generic.x = 271;
s_ingame.psettings.generic.y = 284;
s_ingame.psettings.width = MENU_BUTTON_MED_WIDTH;
s_ingame.psettings.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.psettings.textcolor = CT_BLACK;
s_ingame.psettings.textcolor2 = CT_WHITE;
s_ingame.psettings.color = CT_DKPURPLE1;
s_ingame.psettings.color2 = CT_LTPURPLE1;
s_ingame.psettings.textX = 5;
s_ingame.psettings.textY = 2;
s_ingame.psettings.textEnum = MBT_PLAYERDATA;
s_ingame.pmodel.generic.type = MTYPE_BITMAP;
s_ingame.pmodel.generic.name = GRAPHIC_SQUARE;
s_ingame.pmodel.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.pmodel.generic.id = ID_PLAYER_MODEL;
s_ingame.pmodel.generic.callback = InGame_Event;
s_ingame.pmodel.generic.x = 454;
s_ingame.pmodel.generic.y = 284;
s_ingame.pmodel.width = MENU_BUTTON_MED_WIDTH;
s_ingame.pmodel.height = MENU_BUTTON_MED_HEIGHT;
s_ingame.pmodel.color = CT_DKPURPLE1;
s_ingame.pmodel.color2 = CT_LTPURPLE1;
s_ingame.pmodel.textX = 5;
s_ingame.pmodel.textY = 2;
s_ingame.pmodel.textEnum = MBT_CHANGEMODEL;
s_ingame.pmodel.textcolor = CT_BLACK;
s_ingame.pmodel.textcolor2 = CT_WHITE;
/* s_ingame.playerName.generic.type = MTYPE_FIELD;
s_ingame.playerName.field.widthInChars = MAX_NAMELENGTH;
s_ingame.playerName.field.maxchars = MAX_NAMELENGTH;
s_ingame.playerName.generic.x = 319;
s_ingame.playerName.generic.y = 193;
s_ingame.playerName.field.style = UI_SMALLFONT;
// s_ingame.playerName.field.titleEnum = MBT_PLAYER_NAME;
s_ingame.playerName.field.titlecolor = CT_LTGOLD1;
s_ingame.playerName.field.textcolor = CT_DKGOLD1;
s_ingame.playerName.field.textcolor2 = CT_LTGOLD1;
s_ingame.pClass.generic.type = MTYPE_SPINCONTROL;
s_ingame.pClass.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.pClass.generic.callback = InGame_Event;
s_ingame.pClass.generic.id = ID_CLASS;
s_ingame.pClass.generic.x = 265;
s_ingame.pClass.generic.y = 213;
s_ingame.pClass.textEnum = MBT_CLASS;
s_ingame.pClass.textcolor = CT_BLACK;
s_ingame.pClass.textcolor2 = CT_WHITE;
s_ingame.pClass.color = CT_DKPURPLE1;
s_ingame.pClass.color2 = CT_LTPURPLE1;
s_ingame.pClass.listcolor = CT_LTGOLD1;
s_ingame.pClass.width = 40; //80
s_ingame.pClass.textX = 5;
s_ingame.pClass.textY = 2;
s_ingame.pClass.itemnames = pclass_items;
s_ingame.pRank.generic.type = MTYPE_SPINCONTROL;
s_ingame.pRank.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.pRank.generic.callback = InGame_Event;
s_ingame.pRank.generic.id = ID_RANK;
s_ingame.pRank.generic.x = 265;
s_ingame.pRank.generic.y = 235;
s_ingame.pRank.textEnum = MBT_RANK;
s_ingame.pRank.textcolor = CT_BLACK;
s_ingame.pRank.textcolor2 = CT_WHITE;
s_ingame.pRank.color = CT_DKPURPLE1;
s_ingame.pRank.color2 = CT_LTPURPLE1;
s_ingame.pRank.listcolor = CT_LTGOLD1;
s_ingame.pRank.width = 40;
s_ingame.pRank.textX = 5;
s_ingame.pRank.textY = 2;
s_ingame.pRank.itemnames = prank_items_formal;*/
s_ingame.join.generic.type = MTYPE_BITMAP;
s_ingame.join.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.join.generic.x = 285; //126 //306
s_ingame.join.generic.y = 376;
s_ingame.join.generic.id = ID_JOIN;
s_ingame.join.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.join.generic.callback = InGame_Event;
s_ingame.join.width = MENU_BUTTON_MED_WIDTH;
s_ingame.join.height = MENU_BUTTON_MED_HEIGHT + 6;
s_ingame.join.color = CT_DKPURPLE1;
s_ingame.join.color2 = CT_LTPURPLE1;
s_ingame.join.textX = MENU_BUTTON_TEXT_X;
s_ingame.join.textY = MENU_BUTTON_TEXT_Y;
s_ingame.join.textEnum = MBT_JOINMATCH;
s_ingame.join.textcolor = CT_BLACK;
s_ingame.join.textcolor2 = CT_WHITE;
s_ingame.spectate.generic.type = MTYPE_BITMAP;
s_ingame.spectate.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingame.spectate.generic.x = 285; //126 //306
s_ingame.spectate.generic.y = 342;
s_ingame.spectate.generic.id = ID_SPECTATE;
s_ingame.spectate.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
s_ingame.spectate.generic.callback = InGame_Event;
s_ingame.spectate.width = MENU_BUTTON_MED_WIDTH;
s_ingame.spectate.height = MENU_BUTTON_MED_HEIGHT + 6;
s_ingame.spectate.color = CT_DKPURPLE1;
s_ingame.spectate.color2 = CT_LTPURPLE1;
s_ingame.spectate.textX = MENU_BUTTON_TEXT_X;
s_ingame.spectate.textY = MENU_BUTTON_TEXT_Y;
s_ingame.spectate.textEnum = MBT_OBSERVER;
s_ingame.spectate.textcolor = CT_BLACK;
s_ingame.spectate.textcolor2 = CT_WHITE;
s_ingame.playermdl.generic.type = MTYPE_BITMAP;
s_ingame.playermdl.generic.flags = QMF_SILENT;
s_ingame.playermdl.generic.callback = Player_ModelEvent;
s_ingame.playermdl.generic.ownerdraw = IngamePlayer_DrawPlayer;
s_ingame.playermdl.generic.x = 86; //440
s_ingame.playermdl.generic.y = 158;
s_ingame.playermdl.width = 155; //32*6.6 //211.2
s_ingame.playermdl.height = 276; //56*6.6 //369.6
team = atoi( Info_ValueForKey( info, "t" ) );
if( team > TEAM_FREE ) {
s_ingame.spectate.generic.flags |= QMF_GRAYED;
s_ingame.join.generic.flags &= ~QMF_GRAYED;
}
else
{
s_ingame.spectate.generic.flags &= ~QMF_GRAYED;
s_ingame.join.generic.flags |= QMF_GRAYED;
}
// Menu_AddItem( &s_ingame.menu, &s_ingame.team );
Menu_AddItem( &s_ingame.menu, &s_ingame.addbots );
Menu_AddItem( &s_ingame.menu, &s_ingame.removebots );
Menu_AddItem( &s_ingame.menu, &s_ingame.emotes );
Menu_AddItem( &s_ingame.menu, &s_ingame.admin );
// Menu_AddItem( &s_ingame.menu, &s_ingame.teamorders );
Menu_AddItem( &s_ingame.menu, &s_ingame.setup );
Menu_AddItem( &s_ingame.menu, &s_ingame.server );
Menu_AddItem( &s_ingame.menu, &s_ingame.leave );
Menu_AddItem( &s_ingame.menu, &s_ingame.restart );
Menu_AddItem( &s_ingame.menu, &s_ingame.resume );
// Menu_AddItem( &s_ingame.menu, &s_ingame.quit );
Menu_AddItem( &s_ingame.menu, &s_ingame.screenshot );
Menu_AddItem( &s_ingame.menu, &s_ingame.psettings );
Menu_AddItem( &s_ingame.menu, &s_ingame.pmodel );
Menu_AddItem( &s_ingame.menu, &s_ingame.join );
Menu_AddItem( &s_ingame.menu, &s_ingame.spectate );
Menu_AddItem( &s_ingame.menu, &s_ingame.playermdl);
Menu_AddItem( &s_ingame.menu, &s_ingame.motd );
Menu_AddItem( &s_ingame.menu, &s_ingame.respawn );
// Player_InitModel();
}
/*
=================
InGameQuit_Cache
=================
*/
void InGame_Cache( void )
{
s_ingame.graphic_12_8_LU = trap_R_RegisterShaderNoMip( "menu/common/corner_ul_8_12.tga" );
s_ingame.graphic_12_8_LL = trap_R_RegisterShaderNoMip( "menu/common/corner_ll_8_12.tga" );
s_ingame.graphic_12_8_RU = trap_R_RegisterShaderNoMip( "menu/common/corner_ur_8_12.tga" );
s_ingame.graphic_12_8_RL = trap_R_RegisterShaderNoMip( "menu/common/corner_lr_8_12.tga" );
}
/*
=================
UI_InGameMenu
=================
*/
void UI_InGameMenu( void )
{
// force as top level menu
uis.menusp = 0;
// set menu cursor to a nice location
uis.cursorx = 319;
uis.cursory = 80;
ingameFlag = qtrue; // true when ingame menu is in use
Mouse_Show();
InGame_MenuInit();
UI_PushMenu( &s_ingame.menu );
}
/*
=================
InGameQuitMenu_Event
=================
*/
void InGameQuitMenu_Event( void *ptr, int notification )
{
if( notification != QM_ACTIVATED )
{
return;
}
switch( ((menucommon_s*)ptr)->id )
{
case ID_INGAME_QUIT_NO:
case ID_INGAMEMENU:
UI_PopMenu();
return;
case ID_INGAME_QUIT_YES:
UI_PopMenu();
UI_QuitMenu();
return;
}
}
/*
=================
UI_InGameQuitMenu_Draw
=================
*/
static void UI_InGameQuitMenu_Draw( void )
{
UI_MenuFrame(&s_ingamequit.menu);
// Rounded button that takes place of INGAME MENU button
trap_R_SetColor( colorTable[CT_LTBROWN1]);
UI_DrawHandlePic( 482, 136, MENU_BUTTON_MED_WIDTH - 22, MENU_BUTTON_MED_HEIGHT, uis.whiteShader);
UI_DrawHandlePic( 460 + MENU_BUTTON_MED_WIDTH -6 , 136, -19, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd); //right
trap_R_SetColor( colorTable[CT_LTBROWN1]);
UI_DrawHandlePic(30,203, 47, 186, uis.whiteShader); // Long left column square on bottom 3rd
// standard menu drawing
Menu_Draw( &s_ingamequit.menu );
}
/*
=================
InGameQuitMenu_Init
=================
*/
void InGameQuitMenu_Init( void )
{
memset( &s_ingame, 0 ,sizeof(ingamemenu_t) );
InGame_Cache();
s_ingamequit.menu.wrapAround = qtrue;
s_ingamequit.menu.fullscreen = qtrue;
s_ingamequit.menu.descX = MENU_DESC_X;
s_ingamequit.menu.descY = MENU_DESC_Y;
s_ingamequit.menu.draw = UI_InGameQuitMenu_Draw;
s_ingamequit.menu.titleX = MENU_TITLE_X;
s_ingamequit.menu.titleY = MENU_TITLE_Y;
s_ingamequit.menu.titleI = MNT_INGAMEMAIN_TITLE;
s_ingamequit.menu.footNoteEnum = MNT_INGAME_MENU;
s_ingamequit.ingamemenu.generic.type = MTYPE_BITMAP;
s_ingamequit.ingamemenu.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingamequit.ingamemenu.generic.x = 482;
s_ingamequit.ingamemenu.generic.y = 136;
s_ingamequit.ingamemenu.generic.id = ID_INGAMEMENU;
s_ingamequit.ingamemenu.generic.name = GRAPHIC_SQUARE;
s_ingamequit.ingamemenu.generic.callback = InGameQuitMenu_Event;
s_ingamequit.ingamemenu.width = MENU_BUTTON_MED_WIDTH;
s_ingamequit.ingamemenu.height = MENU_BUTTON_MED_HEIGHT;
s_ingamequit.ingamemenu.color = CT_DKPURPLE1;
s_ingamequit.ingamemenu.color2 = CT_LTPURPLE1;
s_ingamequit.ingamemenu.textX = MENU_BUTTON_TEXT_X;
s_ingamequit.ingamemenu.textY = MENU_BUTTON_TEXT_Y;
s_ingamequit.ingamemenu.textEnum = MBT_INGAMEMENU;
s_ingamequit.ingamemenu.textcolor = CT_BLACK;
s_ingamequit.ingamemenu.textcolor2 = CT_WHITE;
s_ingamequit.no.generic.type = MTYPE_BITMAP;
s_ingamequit.no.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingamequit.no.generic.x = 100;
s_ingamequit.no.generic.y = 180;
s_ingamequit.no.generic.id = ID_INGAME_QUIT_NO;
s_ingamequit.no.generic.name = GRAPHIC_SQUARE;
s_ingamequit.no.generic.callback = InGameQuitMenu_Event;
s_ingamequit.no.width = MENU_BUTTON_MED_WIDTH;
s_ingamequit.no.height = MENU_BUTTON_MED_HEIGHT;
s_ingamequit.no.color = CT_DKPURPLE1;
s_ingamequit.no.color2 = CT_LTPURPLE1;
s_ingamequit.no.textX = MENU_BUTTON_TEXT_X;
s_ingamequit.no.textY = MENU_BUTTON_TEXT_Y;
s_ingamequit.no.textEnum = MBT_QUIT_NO;
s_ingamequit.no.textcolor = CT_BLACK;
s_ingamequit.no.textcolor2 = CT_WHITE;
s_ingamequit.yes.generic.type = MTYPE_BITMAP;
s_ingamequit.yes.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
s_ingamequit.yes.generic.x = 100;
s_ingamequit.yes.generic.y = 180;
s_ingamequit.yes.generic.id = ID_INGAME_QUIT_YES;
s_ingamequit.yes.generic.name = GRAPHIC_SQUARE;
s_ingamequit.yes.generic.callback = InGameQuitMenu_Event;
s_ingamequit.yes.width = MENU_BUTTON_MED_WIDTH;
s_ingamequit.yes.height = MENU_BUTTON_MED_HEIGHT;
s_ingamequit.yes.color = CT_DKPURPLE1;
s_ingamequit.yes.color2 = CT_LTPURPLE1;
s_ingamequit.yes.textX = MENU_BUTTON_TEXT_X;
s_ingamequit.yes.textY = MENU_BUTTON_TEXT_Y;
s_ingamequit.yes.textEnum = MBT_QUIT_YES;
s_ingamequit.yes.textcolor = CT_BLACK;
s_ingamequit.yes.textcolor2 = CT_WHITE;
Menu_AddItem( &s_ingamequit.menu, &s_ingamequit.ingamemenu );
Menu_AddItem( &s_ingamequit.menu, &s_ingamequit.no );
Menu_AddItem( &s_ingamequit.menu, &s_ingamequit.yes );
}
/*
=================
UI_InGameQuitMenu
=================
*/
void UI_InGameQuitMenu( void )
{
InGameQuitMenu_Init();
UI_PushMenu( &s_ingamequit.menu );
}