Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

ui_serverinfo.c File Reference

#include "ui_local.h"

Include dependency graph for ui_serverinfo.c:

Include dependency graph

Go to the source code of this file.

Data Structures

struct  serverinfo_t

Defines

#define ID_ADD   100
#define ID_BACK   101
#define SERVERINFO_BACK0   "menu/art/back_0"
#define SERVERINFO_BACK1   "menu/art/back_1"
#define SERVERINFO_FRAMEL   "menu/art/frame2_l"
#define SERVERINFO_FRAMER   "menu/art/frame1_r"

Functions

void Favorites_Add (void)
void ServerInfo_Cache (void)
void ServerInfo_Event (void *ptr, int event)
void ServerInfo_MenuDraw (void)
sfxHandle_t ServerInfo_MenuKey (int key)
void UI_ServerInfoMenu (void)

Variables

serverinfo_t s_serverinfo
char * serverinfo_artlist []


Define Documentation

#define ID_ADD   100
 

Definition at line 39 of file ui_serverinfo.c.

Referenced by ServerInfo_Event().

#define ID_BACK   101
 

Definition at line 40 of file ui_serverinfo.c.

#define SERVERINFO_BACK0   "menu/art/back_0"
 

Definition at line 27 of file ui_serverinfo.c.

#define SERVERINFO_BACK1   "menu/art/back_1"
 

Definition at line 28 of file ui_serverinfo.c.

#define SERVERINFO_FRAMEL   "menu/art/frame2_l"
 

Definition at line 25 of file ui_serverinfo.c.

#define SERVERINFO_FRAMER   "menu/art/frame1_r"
 

Definition at line 26 of file ui_serverinfo.c.


Function Documentation

void Favorites_Add void   ) 
 

Definition at line 64 of file ui_serverinfo.c.

References i, Q_stricmp(), trap_Cvar_Set(), trap_Cvar_VariableStringBuffer(), and va().

Referenced by ServerInfo_Event().

00065 {
00066     char    adrstr[128];
00067     char    serverbuff[128];
00068     int     i;
00069     int     best;
00070 
00071     trap_Cvar_VariableStringBuffer( "cl_currentServerAddress", serverbuff, sizeof(serverbuff) );
00072     if (!serverbuff[0])
00073         return;
00074 
00075     best = 0;
00076     for (i=0; i<MAX_FAVORITESERVERS; i++)
00077     {
00078         trap_Cvar_VariableStringBuffer( va("server%d",i+1), adrstr, sizeof(adrstr) );
00079         if (!Q_stricmp(serverbuff,adrstr))
00080         {
00081             // already in list
00082             return;
00083         }
00084         
00085         // use first empty or non-numeric available slot
00086         if ((adrstr[0]  < '0' || adrstr[0] > '9' ) && !best)
00087             best = i+1;
00088     }
00089 
00090     if (best)
00091         trap_Cvar_Set( va("server%d",best), serverbuff);
00092 }

Here is the call graph for this function:

void ServerInfo_Cache void   ) 
 

Definition at line 167 of file ui_serverinfo.c.

References i, serverinfo_artlist, and trap_R_RegisterShaderNoMip().

00168 {
00169     int i;
00170 
00171     // touch all our pics
00172     for (i=0; ;i++)
00173     {
00174         if (!serverinfo_artlist[i])
00175             break;
00176         trap_R_RegisterShaderNoMip(serverinfo_artlist[i]);
00177     }
00178 }

Here is the call graph for this function:

void ServerInfo_Event void *  ptr,
int  event
[static]
 

Definition at line 100 of file ui_serverinfo.c.

References Favorites_Add(), ID_ADD, ID_BACK, and UI_PopMenu().

00101 {
00102     switch (((menucommon_s*)ptr)->id)
00103     {
00104         case ID_ADD:
00105             if (event != QM_ACTIVATED)
00106                 break;
00107         
00108             Favorites_Add();
00109             UI_PopMenu();
00110             break;
00111 
00112         case ID_BACK:
00113             if (event != QM_ACTIVATED)
00114                 break;
00115 
00116             UI_PopMenu();
00117             break;
00118     }
00119 }

Here is the call graph for this function:

void ServerInfo_MenuDraw void   )  [static]
 

Definition at line 126 of file ui_serverinfo.c.

References color_red, serverinfo_t::info, Info_NextPair(), MAX_INFO_KEY, serverinfo_t::menu, Menu_Draw(), serverinfo_t::numlines, Q_strcat(), s, s_serverinfo, SCREEN_HEIGHT, SCREEN_WIDTH, text_color_normal, UI_DrawString(), UI_LEFT, UI_RIGHT, UI_SMALLFONT, value, and y.

00127 {
00128     const char      *s;
00129     char            key[MAX_INFO_KEY];
00130     char            value[MAX_INFO_VALUE];
00131     int             y;
00132 
00133     y = SCREEN_HEIGHT/2 - s_serverinfo.numlines*(SMALLCHAR_HEIGHT)/2 - 20;
00134     s = s_serverinfo.info;
00135     while ( s ) {
00136         Info_NextPair( &s, key, value );
00137         if ( !key[0] ) {
00138             break;
00139         }
00140 
00141         Q_strcat( key, MAX_INFO_KEY, ":" ); 
00142 
00143         UI_DrawString(SCREEN_WIDTH*0.50 - 8,y,key,UI_RIGHT|UI_SMALLFONT,color_red);
00144         UI_DrawString(SCREEN_WIDTH*0.50 + 8,y,value,UI_LEFT|UI_SMALLFONT,text_color_normal);
00145 
00146         y += SMALLCHAR_HEIGHT;
00147     }
00148 
00149     Menu_Draw( &s_serverinfo.menu );
00150 }

Here is the call graph for this function:

sfxHandle_t ServerInfo_MenuKey int  key  )  [static]
 

Definition at line 157 of file ui_serverinfo.c.

References serverinfo_t::menu, Menu_DefaultKey(), s_serverinfo, and sfxHandle_t.

00158 {
00159     return ( Menu_DefaultKey( &s_serverinfo.menu, key ) );
00160 }

Here is the call graph for this function:

void UI_ServerInfoMenu void   ) 
 

Definition at line 185 of file ui_serverinfo.c.

References serverinfo_t::add, serverinfo_t::back, serverinfo_t::banner, menucommon_s::callback, menutext_s::color, CS_SERVERINFO, _tag_menuframework::draw, menucommon_s::flags, menubitmap_s::focuspic, serverinfo_t::framel, serverinfo_t::framer, _tag_menuframework::fullscreen, menutext_s::generic, menubitmap_s::generic, menubitmap_s::height, menucommon_s::id, serverinfo_t::info, Info_NextPair(), _tag_menuframework::key, MAX_INFO_STRING, memset(), serverinfo_t::menu, Menu_AddItem(), menucommon_s::name, serverinfo_t::numlines, QMF_CENTER_JUSTIFY, QMF_LEFT_JUSTIFY, s, s_serverinfo, ServerInfo_Cache(), menutext_s::string, menutext_s::style, trap_Cvar_VariableValue(), trap_GetConfigString(), menucommon_s::type, UI_CENTER, UI_PushMenu(), value, menubitmap_s::width, _tag_menuframework::wrapAround, menucommon_s::x, and menucommon_s::y.

00186 {
00187     const char      *s;
00188     char            key[MAX_INFO_KEY];
00189     char            value[MAX_INFO_VALUE];
00190 
00191     // zero set all our globals
00192     memset( &s_serverinfo, 0 ,sizeof(serverinfo_t) );
00193 
00194     ServerInfo_Cache();
00195 
00196     s_serverinfo.menu.draw       = ServerInfo_MenuDraw;
00197     s_serverinfo.menu.key        = ServerInfo_MenuKey;
00198     s_serverinfo.menu.wrapAround = qtrue;
00199     s_serverinfo.menu.fullscreen = qtrue;
00200 
00201     s_serverinfo.banner.generic.type  = MTYPE_BTEXT;
00202     s_serverinfo.banner.generic.x     = 320;
00203     s_serverinfo.banner.generic.y     = 16;
00204     s_serverinfo.banner.string        = "SERVER INFO";
00205     s_serverinfo.banner.color         = color_white;
00206     s_serverinfo.banner.style         = UI_CENTER;
00207 
00208     s_serverinfo.framel.generic.type  = MTYPE_BITMAP;
00209     s_serverinfo.framel.generic.name  = SERVERINFO_FRAMEL;
00210     s_serverinfo.framel.generic.flags = QMF_INACTIVE;
00211     s_serverinfo.framel.generic.x     = 0;  
00212     s_serverinfo.framel.generic.y     = 78;
00213     s_serverinfo.framel.width         = 256;
00214     s_serverinfo.framel.height        = 329;
00215 
00216     s_serverinfo.framer.generic.type  = MTYPE_BITMAP;
00217     s_serverinfo.framer.generic.name  = SERVERINFO_FRAMER;
00218     s_serverinfo.framer.generic.flags = QMF_INACTIVE;
00219     s_serverinfo.framer.generic.x     = 376;
00220     s_serverinfo.framer.generic.y     = 76;
00221     s_serverinfo.framer.width         = 256;
00222     s_serverinfo.framer.height        = 334;
00223 
00224     s_serverinfo.add.generic.type     = MTYPE_PTEXT;
00225     s_serverinfo.add.generic.flags    = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
00226     s_serverinfo.add.generic.callback = ServerInfo_Event;
00227     s_serverinfo.add.generic.id       = ID_ADD;
00228     s_serverinfo.add.generic.x        = 320;
00229     s_serverinfo.add.generic.y        = 371;
00230     s_serverinfo.add.string           = "ADD TO FAVORITES";
00231     s_serverinfo.add.style            = UI_CENTER|UI_SMALLFONT;
00232     s_serverinfo.add.color            = color_red;
00233     if( trap_Cvar_VariableValue( "sv_running" ) ) {
00234         s_serverinfo.add.generic.flags |= QMF_GRAYED;
00235     }
00236 
00237     s_serverinfo.back.generic.type     = MTYPE_BITMAP;
00238     s_serverinfo.back.generic.name     = SERVERINFO_BACK0;
00239     s_serverinfo.back.generic.flags    = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
00240     s_serverinfo.back.generic.callback = ServerInfo_Event;
00241     s_serverinfo.back.generic.id       = ID_BACK;
00242     s_serverinfo.back.generic.x        = 0;
00243     s_serverinfo.back.generic.y        = 480-64;
00244     s_serverinfo.back.width            = 128;
00245     s_serverinfo.back.height           = 64;
00246     s_serverinfo.back.focuspic         = SERVERINFO_BACK1;
00247 
00248     trap_GetConfigString( CS_SERVERINFO, s_serverinfo.info, MAX_INFO_STRING );
00249 
00250     s_serverinfo.numlines = 0;
00251     s = s_serverinfo.info;
00252     while ( s ) {
00253         Info_NextPair( &s, key, value );
00254         if ( !key[0] ) {
00255             break;
00256         }
00257         s_serverinfo.numlines++;
00258     }
00259 
00260     if (s_serverinfo.numlines > 16)
00261         s_serverinfo.numlines = 16;
00262 
00263     Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.banner );
00264     Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.framel );
00265     Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.framer );
00266     Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.add );
00267     Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.back );
00268 
00269     UI_PushMenu( &s_serverinfo.menu );
00270 }

Here is the call graph for this function:


Variable Documentation

serverinfo_t s_serverinfo [static]
 

Definition at line 54 of file ui_serverinfo.c.

Referenced by ServerInfo_MenuDraw(), ServerInfo_MenuKey(), and UI_ServerInfoMenu().

char* serverinfo_artlist[] [static]
 

Initial value:

{
    SERVERINFO_FRAMEL,  
    SERVERINFO_FRAMER,
    SERVERINFO_BACK0,
    SERVERINFO_BACK1,
    NULL
}

Definition at line 30 of file ui_serverinfo.c.

Referenced by ServerInfo_Cache().


Generated on Thu Aug 25 14:34:13 2005 for Quake III Arena by  doxygen 1.3.9.1