codemp/ui/ui_main.c File Reference

#include "../ghoul2/G2.h"
#include "ui_local.h"
#include "../qcommon/qfiles.h"
#include "../qcommon/game_version.h"
#include "ui_force.h"
#include "../cgame/animtable.h"
#include "../game/bg_saga.h"
#include "..\cgame\holocronicons.h"
#include "../namespace_begin.h"
#include "../namespace_end.h"

Go to the source code of this file.

Data Structures

struct  cvarTable_t
struct  datpadmovedata_t
struct  serverStatusCvar_t

Defines

#define MAX_MOVES   16
#define UI_FPS_FRAMES   4
#define MAX_SABER_HILTS   64

Enumerations

enum  {
  MDS_NONE = 0, MDS_FORCE_JUMP, MDS_ROLL, MDS_SABER,
  MDS_MOVE_SOUNDS_MAX
}
enum  {
  MD_ACROBATICS = 0, MD_SINGLE_FAST, MD_SINGLE_MEDIUM, MD_SINGLE_STRONG,
  MD_DUAL_SABERS, MD_SABER_STAFF, MD_MOVE_TITLE_MAX
}

Functions

void UI_SaberAttachToChar (itemDef_t *item)
void _UI_Init (qboolean)
void _UI_Shutdown (void)
void _UI_KeyEvent (int key, qboolean down)
void _UI_MouseEvent (int dx, int dy)
void _UI_Refresh (int realtime)
qboolean _UI_IsFullscreen (void)
void UI_SetSiegeTeams (void)
qboolean UI_SaberModelForSaber (const char *saberName, char *saberModel)
void UI_SiegeSetCvarsForClass (siegeClass_t *scl)
int UI_SiegeClassNum (siegeClass_t *scl)
void UI_UpdateCvarsForClass (const int team, const baseClass, const int index)
void UI_UpdateSiegeStatusIcons (void)
void UI_ClampMaxPlayers (void)
void Menu_ShowGroup (menuDef_t *menu, char *itemName, qboolean showFlag)
void Menu_ItemDisable (menuDef_t *menu, char *name, int disableFlag)
int Menu_ItemsMatchingGroup (menuDef_t *menu, const char *name)
itemDef_tMenu_GetMatchingItemByNumber (menuDef_t *menu, int index, const char *name)
int BG_GetUIPortrait (const int team, const short classIndex, const short cntIndex)
char * BG_GetUIPortraitFile (const int team, const short classIndex, const short cntIndex)
siegeClass_tBG_GetClassOnBaseClass (const int team, const short classIndex, const short cntIndex)
int vmMain (int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11)
animation_tUI_AnimsetAlloc (void)
int UI_ParseAnimationFile (const char *filename, animation_t *animset, qboolean isHumanoid)
void Menu_ShowItemByName (menuDef_t *menu, const char *p, qboolean bShow)
void UpdateForceUsed ()
int ProcessNewUI (int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
const char * UI_GetStringEdString (const char *refSection, const char *refName)
const char * UI_TeamName (int team)
void AssetCache ()
void _UI_DrawSides (float x, float y, float w, float h, float size)
void _UI_DrawTopBottom (float x, float y, float w, float h, float size)
void _UI_DrawRect (float x, float y, float width, float height, float size, const float *color)
int MenuFontToHandle (int iMenuFont)
int Text_Width (const char *text, float scale, int iMenuFont)
int Text_Height (const char *text, float scale, int iMenuFont)
void Text_Paint (float x, float y, float scale, vec4_t color, const char *text, float adjust, int limit, int style, int iMenuFont)
void Text_PaintWithCursor (float x, float y, float scale, vec4_t color, const char *text, int cursorPos, char cursor, int limit, int style, int iMenuFont)
void UI_ShowPostGame (qboolean newHigh)
void UI_DrawCenteredPic (qhandle_t image, int w, int h)
void Text_PaintCenter (float x, float y, float scale, vec4_t color, const char *text, float adjust, int iMenuFont)
void UI_CleanupGhoul2 (void)
char * GetMenuBuffer (const char *filename)
qboolean Asset_Parse (int handle)
void UI_Report ()
void UI_ParseMenu (const char *menuFile)
qboolean Load_Menu (int handle)
void UI_LoadMenus (const char *menuFile, qboolean reset)
void UI_Load ()
qboolean UI_HasSetSaberOnly (void)
qboolean UI_TrueJediEnabled (void)
void UpdateBotButtons (void)
void UpdateForceStatus ()
void Item_RunScript (itemDef_t *item, const char *s)
void UI_ServersSort (int column, qboolean force)
void UI_UpdateVideoSetup (void)
void UI_GetVideoSetup (void)
void UI_SetSiegeObjectiveGraphicPos (menuDef_t *menu, const char *itemName, const char *cvarName)
void UI_FindCurrentSiegeTeamClass (void)
void UI_UpdateSiegeObjectiveGraphics (void)
saber_colors_t TranslateSaberColor (const char *name)
qboolean UI_SaberSkinForSaber (const char *saberName, char *saberSkin)
qboolean ItemParse_asset_model_go (itemDef_t *item, const char *name, int *runTimeLength)
qboolean ItemParse_model_g2skin_go (itemDef_t *item, const char *skinName)
char * SaberColorToString (saber_colors_t color)
qboolean ItemParse_model_g2anim_go (itemDef_t *item, const char *animName)
void UI_UpdateCharacterSkin (void)
qboolean UI_SaberProperNameForSaber (const char *saberName, char *saberProperName)
void UI_SaberGetHiltInfo (char *singleHilts[MAX_SABER_HILTS], char *staffHilts[MAX_SABER_HILTS])
int BG_SiegeCountBaseClass (const int team, const short classIndex)
qboolean UI_hasSkinForBase (const char *base, const char *team)
qboolean UI_SaberTypeForSaber (const char *saberName, char *saberType)
qboolean UI_FeederSelection (float feederFloat, int index, itemDef_t *item)
void UI_LoadForceConfig_List (void)
void UI_SiegeInit (void)
void UI_LoadNonIngame ()
void _UI_SetActiveMenu (uiMenuCommand_t menu)
void UI_DrawConnectScreen (qboolean overlay)
void UI_RegisterCvars (void)
void UI_UpdateCvars (void)

Variables

char * forcepowerDesc [NUM_FORCE_POWERS]
char * datapadMoveTitleData [MD_MOVE_TITLE_MAX]
char * datapadMoveTitleBaseAnims [MD_MOVE_TITLE_MAX]
vmCvar_t ui_debug
vmCvar_t ui_initialized
vmCvar_t ui_char_color_red
vmCvar_t ui_char_color_green
vmCvar_t ui_char_color_blue
vmCvar_t ui_PrecacheModels
vmCvar_t ui_char_anim
siegeClassDesc_t g_UIClassDescriptions [MAX_SIEGE_CLASSES]
siegeTeam_tsiegeTeam1 = NULL
siegeTeam_tsiegeTeam2 = NULL
int g_UIGloballySelectedSiegeClass = -1
qboolean UIPAFtextLoaded = qfalse
animation_t uiHumanoidAnimations [MAX_TOTALANIMATIONS]
bgLoadedAnim_t bgAllAnims [MAX_ANIM_FILES]
int uiNumAllAnims = 1
char holdSPString [MAX_STRING_CHARS] = {0}
char holdSPString2 [MAX_STRING_CHARS] = {0}
uiInfo_t uiInfo
int uiSkinColor = TEAM_FREE
int uiHoldSkinColor = TEAM_FREE
int frameCount = 0
int startTime
vmCvar_t ui_rankChange
char parsedFPMessage [1024]
int FPMessageTime
char * defaultMenu = NULL
int gUISelectedMap = 0
char * saberSingleHiltInfo [MAX_SABER_HILTS]
char * saberStaffHiltInfo [MAX_SABER_HILTS]
serverStatusCvar_t serverStatusCvars []
int g_siegedFeederForcedSet = 0
vmCvar_t ui_ffa_fraglimit
vmCvar_t ui_ffa_timelimit
vmCvar_t ui_selectedModelIndex
vmCvar_t ui_char_model
vmCvar_t ui_char_skin_head
vmCvar_t ui_char_skin_torso
vmCvar_t ui_char_skin_legs
vmCvar_t ui_saber_type
vmCvar_t ui_saber
vmCvar_t ui_saber2
vmCvar_t ui_saber_color
vmCvar_t ui_saber2_color
vmCvar_t ui_team_fraglimit
vmCvar_t ui_team_timelimit
vmCvar_t ui_team_friendly
vmCvar_t ui_ctf_capturelimit
vmCvar_t ui_ctf_timelimit
vmCvar_t ui_ctf_friendly
vmCvar_t ui_arenasFile
vmCvar_t ui_botsFile
vmCvar_t ui_spSkill
vmCvar_t ui_browserMaster
vmCvar_t ui_browserGameType
vmCvar_t ui_browserSortKey
vmCvar_t ui_browserShowFull
vmCvar_t ui_browserShowEmpty
vmCvar_t ui_drawCrosshair
vmCvar_t ui_drawCrosshairNames
vmCvar_t ui_marks
vmCvar_t ui_redteam
vmCvar_t ui_redteam1
vmCvar_t ui_redteam2
vmCvar_t ui_redteam3
vmCvar_t ui_redteam4
vmCvar_t ui_redteam5
vmCvar_t ui_redteam6
vmCvar_t ui_redteam7
vmCvar_t ui_redteam8
vmCvar_t ui_blueteam
vmCvar_t ui_blueteam1
vmCvar_t ui_blueteam2
vmCvar_t ui_blueteam3
vmCvar_t ui_blueteam4
vmCvar_t ui_blueteam5
vmCvar_t ui_blueteam6
vmCvar_t ui_blueteam7
vmCvar_t ui_blueteam8
vmCvar_t ui_teamName
vmCvar_t ui_dedicated
vmCvar_t ui_gameType
vmCvar_t ui_netGameType
vmCvar_t ui_actualNetGameType
vmCvar_t ui_joinGameType
vmCvar_t ui_netSource
vmCvar_t ui_serverFilterType
vmCvar_t ui_opponentName
vmCvar_t ui_menuFiles
vmCvar_t ui_currentMap
vmCvar_t ui_currentNetMap
vmCvar_t ui_mapIndex
vmCvar_t ui_currentOpponent
vmCvar_t ui_selectedPlayer
vmCvar_t ui_selectedPlayerName
vmCvar_t ui_lastServerRefresh_0
vmCvar_t ui_lastServerRefresh_1
vmCvar_t ui_lastServerRefresh_2
vmCvar_t ui_lastServerRefresh_3
vmCvar_t ui_singlePlayerActive
vmCvar_t ui_scoreAccuracy
vmCvar_t ui_scoreImpressives
vmCvar_t ui_scoreExcellents
vmCvar_t ui_scoreCaptures
vmCvar_t ui_scoreDefends
vmCvar_t ui_scoreAssists
vmCvar_t ui_scoreGauntlets
vmCvar_t ui_scoreScore
vmCvar_t ui_scorePerfect
vmCvar_t ui_scoreTeam
vmCvar_t ui_scoreBase
vmCvar_t ui_scoreTimeBonus
vmCvar_t ui_scoreSkillBonus
vmCvar_t ui_scoreShutoutBonus
vmCvar_t ui_scoreTime
vmCvar_t ui_captureLimit
vmCvar_t ui_fragLimit
vmCvar_t ui_findPlayer
vmCvar_t ui_hudFiles
vmCvar_t ui_recordSPDemo
vmCvar_t ui_realCaptureLimit
vmCvar_t ui_realWarmUp
vmCvar_t ui_serverStatusTimeOut
vmCvar_t se_language
vmCvar_t ui_bypassMainMenuLoad


Define Documentation

#define MAX_MOVES   16
 

Definition at line 91 of file ui_main.c.

#define MAX_SABER_HILTS   64
 

Definition at line 5737 of file ui_main.c.

Referenced by UI_SaberGetHiltInfo().

#define UI_FPS_FRAMES   4
 

Definition at line 936 of file ui_main.c.

Referenced by _UI_Refresh().


Enumeration Type Documentation

anonymous enum
 

Enumeration values:
MDS_NONE 
MDS_FORCE_JUMP 
MDS_ROLL 
MDS_SABER 
MDS_MOVE_SOUNDS_MAX 

Definition at line 49 of file ui_main.c.

00050 {
00051         MDS_NONE = 0,
00052         MDS_FORCE_JUMP,
00053         MDS_ROLL,
00054         MDS_SABER,
00055         MDS_MOVE_SOUNDS_MAX
00056 };

anonymous enum
 

Enumeration values:
MD_ACROBATICS 
MD_SINGLE_FAST 
MD_SINGLE_MEDIUM 
MD_SINGLE_STRONG 
MD_DUAL_SABERS 
MD_SABER_STAFF 
MD_MOVE_TITLE_MAX 

Definition at line 58 of file ui_main.c.

00059 {
00060         MD_ACROBATICS = 0,
00061         MD_SINGLE_FAST,
00062         MD_SINGLE_MEDIUM,
00063         MD_SINGLE_STRONG,
00064         MD_DUAL_SABERS,
00065         MD_SABER_STAFF,
00066         MD_MOVE_TITLE_MAX
00067 };


Function Documentation

void _UI_DrawRect float  x,
float  y,
float  width,
float  height,
float  size,
const float *  color
 

Definition at line 744 of file ui_main.c.

References _UI_DrawSides(), _UI_DrawTopBottom(), NULL, and trap_R_SetColor().

Referenced by _UI_Init().

00744                                                                                                  {
00745         trap_R_SetColor( color );
00746 
00747   _UI_DrawTopBottom(x, y, width, height, size);
00748   _UI_DrawSides(x, y, width, height, size);
00749 
00750         trap_R_SetColor( NULL );
00751 }

void _UI_DrawSides float  x,
float  y,
float  w,
float  h,
float  size
 

Definition at line 726 of file ui_main.c.

References trap_R_DrawStretchPic(), uiInfo_t::uiDC, uiInfo, displayContextDef_t::whiteShader, and displayContextDef_t::xscale.

Referenced by _UI_DrawRect(), and _UI_Init().

00726                                                                    {
00727         size *= uiInfo.uiDC.xscale;
00728         trap_R_DrawStretchPic( x, y, size, h, 0, 0, 0, 0, uiInfo.uiDC.whiteShader );
00729         trap_R_DrawStretchPic( x + w - size, y, size, h, 0, 0, 0, 0, uiInfo.uiDC.whiteShader );
00730 }

void _UI_DrawTopBottom float  x,
float  y,
float  w,
float  h,
float  size
 

Definition at line 732 of file ui_main.c.

References trap_R_DrawStretchPic(), uiInfo_t::uiDC, uiInfo, displayContextDef_t::whiteShader, and displayContextDef_t::yscale.

Referenced by _UI_DrawRect(), and _UI_Init().

00732                                                                        {
00733         size *= uiInfo.uiDC.yscale;
00734         trap_R_DrawStretchPic( x, y, w, size, 0, 0, 0, 0, uiInfo.uiDC.whiteShader );
00735         trap_R_DrawStretchPic( x, y + h - size, w, size, 0, 0, 0, 0, uiInfo.uiDC.whiteShader );
00736 }

void _UI_Init qboolean   ) 
 

Definition at line 10164 of file ui_main.c.

References _UI_DrawRect(), _UI_DrawSides(), _UI_DrawTopBottom(), displayContextDef_t::addRefEntityToScene, uiInfo_t::aliasCount, displayContextDef_t::AnyLanguage_ReadCharFromString, AssetCache(), displayContextDef_t::bias, uiInfo_t::characterCount, displayContextDef_t::clearScene, Com_Error(), Com_Printf(), uiInfo_t::currentCrosshair, serverStatus_s::currentServerCinematic, displayContextDef_t::cursor, CVAR_ARCHIVE, CVAR_INTERNAL, CVAR_SERVERINFO, displayContextDef_t::deferScript, displayContextDef_t::drawCinematic, displayContextDef_t::drawHandlePic, displayContextDef_t::drawRect, displayContextDef_t::drawSides, displayContextDef_t::drawStretchPic, displayContextDef_t::drawText, displayContextDef_t::drawTextWithCursor, displayContextDef_t::drawTopBottom, uiInfo_t::effectsColor, displayContextDef_t::Error, displayContextDef_t::executeText, displayContextDef_t::feederCount, displayContextDef_t::feederItemImage, displayContextDef_t::feederItemText, displayContextDef_t::feederSelection, displayContextDef_t::fillRect, displayContextDef_t::Font_DrawString, displayContextDef_t::Font_HeightPixels, displayContextDef_t::Font_StrLenChars, displayContextDef_t::Font_StrLenPixels, uiInfo_t::gameTypes, displayContextDef_t::getBindingBuf, displayContextDef_t::getCVarString, displayContextDef_t::getCVarValue, displayContextDef_t::getOverstrikeMode, displayContextDef_t::getTeamColor, displayContextDef_t::getValue, displayContextDef_t::glconfig, uiInfo_t::inGameLoad, Init_Display(), vmCvar_t::integer, displayContextDef_t::keynumToStringBuf, displayContextDef_t::Language_IsAsian, displayContextDef_t::Language_UsesSpaces, uiInfo_t::languageCount, uiInfo_t::mapList, Menus_CloseAll(), displayContextDef_t::modelBounds, NULL, displayContextDef_t::ownerDrawHandleKey, displayContextDef_t::ownerDrawItem, displayContextDef_t::ownerDrawVisible, displayContextDef_t::ownerDrawWidth, displayContextDef_t::Pause, displayContextDef_t::playCinematic, uiInfo_t::previewMovie, displayContextDef_t::Print, qtrue, displayContextDef_t::RegisterFont, displayContextDef_t::registerModel, displayContextDef_t::registerShaderNoMip, displayContextDef_t::registerSound, displayContextDef_t::renderScene, displayContextDef_t::runCinematicFrame, displayContextDef_t::runScript, uiInfo_t::serverStatus, displayContextDef_t::setBinding, displayContextDef_t::setColor, displayContextDef_t::setCVar, displayContextDef_t::setOverstrikeMode, displayContextDef_t::startBackgroundTrack, displayContextDef_t::startLocalSound, displayContextDef_t::stopBackgroundTrack, displayContextDef_t::stopCinematic, String_Init(), uiInfo_t::teamCount, Text_Height(), Text_Paint(), Text_PaintWithCursor(), Text_Width(), displayContextDef_t::textHeight, displayContextDef_t::textWidth, trap_AnyLanguage_ReadCharFromString(), trap_Cmd_ExecuteText(), trap_Cvar_Register(), trap_Cvar_Set(), trap_Cvar_VariableStringBuffer(), trap_Cvar_VariableValue(), trap_GetGlconfig(), trap_Key_GetBindingBuf(), trap_Key_GetOverstrikeMode(), trap_Key_KeynumToStringBuf(), trap_Key_SetBinding(), trap_Key_SetOverstrikeMode(), trap_LAN_LoadCachedServers(), trap_Language_IsAsian(), trap_Language_UsesSpaces(), trap_Milliseconds(), trap_R_AddRefEntityToScene(), trap_R_ClearScene(), trap_R_DrawStretchPic(), trap_R_Font_DrawString(), trap_R_Font_HeightPixels(), trap_R_Font_StrLenChars(), trap_R_Font_StrLenPixels(), trap_R_ModelBounds(), trap_R_RegisterFont(), trap_R_RegisterModel(), trap_R_RegisterShaderNoMip(), trap_R_RenderScene(), trap_S_RegisterSound(), trap_S_StartBackgroundTrack(), trap_S_StartLocalSound(), trap_S_StopBackgroundTrack(), trap_SP_GetNumLanguages(), ui_bypassMainMenuLoad, ui_currentMap, UI_Cvar_VariableString(), UI_DrawHandlePic(), UI_FeederSelection(), UI_FillRect(), ui_gameType, UI_InitForceShaders(), UI_InitMemory(), UI_LoadBestScores(), UI_LoadBots(), UI_LoadForceConfig_List(), UI_LoadMenus(), ui_netGameType, UI_RegisterCvars(), UI_SetColor(), UI_SiegeInit(), UI_SiegeSetCvarsForClass(), UI_UpdateForcePowers(), uiInfo_t::uiDC, uiInfo, va(), glconfig_t::vidHeight, glconfig_t::vidWidth, displayContextDef_t::whiteShader, displayContextDef_t::xscale, and displayContextDef_t::yscale.

Referenced by vmMain().

10164                                      {
10165         const char *menuSet;
10166         int start;
10167 
10168         //register this freakin thing now
10169         vmCvar_t siegeTeamSwitch;
10170         trap_Cvar_Register(&siegeTeamSwitch, "g_siegeTeamSwitch", "1", CVAR_SERVERINFO|CVAR_ARCHIVE);
10171 
10172         // Get the list of possible languages
10173         uiInfo.languageCount = trap_SP_GetNumLanguages();       // this does a dir scan, so use carefully
10174 
10175         uiInfo.inGameLoad = inGameLoad;
10176 
10177         //initialize all these cvars to "0"
10178         UI_SiegeSetCvarsForClass(NULL);
10179 
10180         UI_SiegeInit();
10181 
10182         UI_UpdateForcePowers();
10183 
10184         UI_RegisterCvars();
10185         UI_InitMemory();
10186 
10187         // cache redundant calulations
10188         trap_GetGlconfig( &uiInfo.uiDC.glconfig );
10189 
10190         // for 640x480 virtualized screen
10191         uiInfo.uiDC.yscale = uiInfo.uiDC.glconfig.vidHeight * (1.0/480.0);
10192         uiInfo.uiDC.xscale = uiInfo.uiDC.glconfig.vidWidth * (1.0/640.0);
10193         if ( uiInfo.uiDC.glconfig.vidWidth * 480 > uiInfo.uiDC.glconfig.vidHeight * 640 ) {
10194                 // wide screen
10195                 uiInfo.uiDC.bias = 0.5 * ( uiInfo.uiDC.glconfig.vidWidth - ( uiInfo.uiDC.glconfig.vidHeight * (640.0/480.0) ) );
10196         }
10197         else {
10198                 // no wide screen
10199                 uiInfo.uiDC.bias = 0;
10200         }
10201 
10202 
10203   //UI_Load();
10204         uiInfo.uiDC.registerShaderNoMip = &trap_R_RegisterShaderNoMip;
10205         uiInfo.uiDC.setColor = &UI_SetColor;
10206         uiInfo.uiDC.drawHandlePic = &UI_DrawHandlePic;
10207         uiInfo.uiDC.drawStretchPic = &trap_R_DrawStretchPic;
10208         uiInfo.uiDC.drawText = &Text_Paint;
10209         uiInfo.uiDC.textWidth = &Text_Width;
10210         uiInfo.uiDC.textHeight = &Text_Height;
10211         uiInfo.uiDC.registerModel = &trap_R_RegisterModel;
10212         uiInfo.uiDC.modelBounds = &trap_R_ModelBounds;
10213         uiInfo.uiDC.fillRect = &UI_FillRect;
10214         uiInfo.uiDC.drawRect = &_UI_DrawRect;
10215         uiInfo.uiDC.drawSides = &_UI_DrawSides;
10216         uiInfo.uiDC.drawTopBottom = &_UI_DrawTopBottom;
10217         uiInfo.uiDC.clearScene = &trap_R_ClearScene;
10218         uiInfo.uiDC.drawSides = &_UI_DrawSides;
10219         uiInfo.uiDC.addRefEntityToScene = &trap_R_AddRefEntityToScene;
10220         uiInfo.uiDC.renderScene = &trap_R_RenderScene;
10221         uiInfo.uiDC.RegisterFont = &trap_R_RegisterFont;
10222         uiInfo.uiDC.Font_StrLenPixels = trap_R_Font_StrLenPixels;
10223         uiInfo.uiDC.Font_StrLenChars = trap_R_Font_StrLenChars;
10224         uiInfo.uiDC.Font_HeightPixels = trap_R_Font_HeightPixels;
10225         uiInfo.uiDC.Font_DrawString = trap_R_Font_DrawString;
10226         uiInfo.uiDC.Language_IsAsian = trap_Language_IsAsian;
10227         uiInfo.uiDC.Language_UsesSpaces = trap_Language_UsesSpaces;
10228         uiInfo.uiDC.AnyLanguage_ReadCharFromString = trap_AnyLanguage_ReadCharFromString;
10229         uiInfo.uiDC.ownerDrawItem = &UI_OwnerDraw;
10230         uiInfo.uiDC.getValue = &UI_GetValue;
10231         uiInfo.uiDC.ownerDrawVisible = &UI_OwnerDrawVisible;
10232         uiInfo.uiDC.runScript = &UI_RunMenuScript;
10233         uiInfo.uiDC.deferScript = &UI_DeferMenuScript;
10234         uiInfo.uiDC.getTeamColor = &UI_GetTeamColor;
10235         uiInfo.uiDC.setCVar = trap_Cvar_Set;
10236         uiInfo.uiDC.getCVarString = trap_Cvar_VariableStringBuffer;
10237         uiInfo.uiDC.getCVarValue = trap_Cvar_VariableValue;
10238         uiInfo.uiDC.drawTextWithCursor = &Text_PaintWithCursor;
10239         uiInfo.uiDC.setOverstrikeMode = &trap_Key_SetOverstrikeMode;
10240         uiInfo.uiDC.getOverstrikeMode = &trap_Key_GetOverstrikeMode;
10241         uiInfo.uiDC.startLocalSound = &trap_S_StartLocalSound;
10242         uiInfo.uiDC.ownerDrawHandleKey = &UI_OwnerDrawHandleKey;
10243         uiInfo.uiDC.feederCount = &UI_FeederCount;
10244         uiInfo.uiDC.feederItemImage = &UI_FeederItemImage;
10245         uiInfo.uiDC.feederItemText = &UI_FeederItemText;
10246         uiInfo.uiDC.feederSelection = &UI_FeederSelection;
10247         uiInfo.uiDC.setBinding = &trap_Key_SetBinding;
10248         uiInfo.uiDC.getBindingBuf = &trap_Key_GetBindingBuf;
10249         uiInfo.uiDC.keynumToStringBuf = &trap_Key_KeynumToStringBuf;
10250         uiInfo.uiDC.executeText = &trap_Cmd_ExecuteText;
10251         uiInfo.uiDC.Error = &Com_Error; 
10252         uiInfo.uiDC.Print = &Com_Printf; 
10253         uiInfo.uiDC.Pause = &UI_Pause;
10254         uiInfo.uiDC.ownerDrawWidth = &UI_OwnerDrawWidth;
10255         uiInfo.uiDC.registerSound = &trap_S_RegisterSound;
10256         uiInfo.uiDC.startBackgroundTrack = &trap_S_StartBackgroundTrack;
10257         uiInfo.uiDC.stopBackgroundTrack = &trap_S_StopBackgroundTrack;
10258         uiInfo.uiDC.playCinematic = &UI_PlayCinematic;
10259         uiInfo.uiDC.stopCinematic = &UI_StopCinematic;
10260         uiInfo.uiDC.drawCinematic = &UI_DrawCinematic;
10261         uiInfo.uiDC.runCinematicFrame = &UI_RunCinematicFrame;
10262 
10263         Init_Display(&uiInfo.uiDC);
10264 
10265         UI_BuildPlayerModel_List(inGameLoad);
10266 
10267         String_Init();
10268   
10269         uiInfo.uiDC.cursor      = trap_R_RegisterShaderNoMip( "menu/art/3_cursor2" );
10270         uiInfo.uiDC.whiteShader = trap_R_RegisterShaderNoMip( "white" );
10271 
10272         AssetCache();
10273 
10274         start = trap_Milliseconds();
10275 
10276   uiInfo.teamCount = 0;
10277   uiInfo.characterCount = 0;
10278   uiInfo.aliasCount = 0;
10279 
10280         UI_ParseGameInfo("ui/jamp/gameinfo.txt");
10281 
10282         menuSet = UI_Cvar_VariableString("ui_menuFilesMP");
10283         if (menuSet == NULL || menuSet[0] == '\0') {
10284                 menuSet = "ui/jampmenus.txt";
10285         }
10286 
10287 #if 1
10288         if (inGameLoad)
10289         {
10290                 UI_LoadMenus("ui/jampingame.txt", qtrue);
10291         }
10292         else if (!ui_bypassMainMenuLoad.integer)
10293         {
10294                 UI_LoadMenus(menuSet, qtrue);
10295         }
10296 #else //this was adding quite a giant amount of time to the load time
10297         UI_LoadMenus(menuSet, qtrue);
10298         UI_LoadMenus("ui/jampingame.txt", qtrue);
10299 #endif
10300         
10301         trap_Cvar_Register(NULL, "ui_name", UI_Cvar_VariableString("name"), CVAR_INTERNAL );    //get this now, jic the menus change again trying to setName before getName
10302 
10303         Menus_CloseAll();
10304 
10305         trap_LAN_LoadCachedServers();
10306         UI_LoadBestScores(uiInfo.mapList[ui_currentMap.integer].mapLoadName, uiInfo.gameTypes[ui_gameType.integer].gtEnum);
10307 
10308         UI_BuildQ3Model_List();
10309         UI_LoadBots();
10310 
10311         UI_LoadForceConfig_List();
10312 
10313         UI_InitForceShaders();
10314 
10315         // sets defaults for ui temp cvars
10316         uiInfo.effectsColor = /*gamecodetoui[*/(int)trap_Cvar_VariableValue("color1");//-1];
10317         uiInfo.currentCrosshair = (int)trap_Cvar_VariableValue("cg_drawCrosshair");
10318         trap_Cvar_Set("ui_mousePitch", (trap_Cvar_VariableValue("m_pitch") >= 0) ? "0" : "1");
10319         trap_Cvar_Set("ui_mousePitchVeh", (trap_Cvar_VariableValue("m_pitchVeh") >= 0) ? "0" : "1");
10320 
10321         uiInfo.serverStatus.currentServerCinematic = -1;
10322         uiInfo.previewMovie = -1;
10323 
10324         trap_Cvar_Register(NULL, "debug_protocol", "", 0 );
10325 
10326         trap_Cvar_Set("ui_actualNetGameType", va("%d", ui_netGameType.integer));
10327 }

qboolean _UI_IsFullscreen void   ) 
 

Definition at line 10533 of file ui_main.c.

References Menus_AnyFullScreenVisible(), and qboolean.

Referenced by vmMain().

10533                                   {
10534         return Menus_AnyFullScreenVisible();
10535 }

void _UI_KeyEvent int  key,
qboolean  down
 

Definition at line 10340 of file ui_main.c.

References A_ESCAPE, KEYCATCH_UI, Menu_Count(), Menu_GetFocused(), Menu_HandleKey(), Menus_AnyFullScreenVisible(), Menus_CloseAll(), trap_Cvar_Set(), trap_Key_ClearStates(), trap_Key_GetCatcher(), and trap_Key_SetCatcher().

Referenced by vmMain().

10340                                             {
10341 
10342   if (Menu_Count() > 0) {
10343     menuDef_t *menu = Menu_GetFocused();
10344                 if (menu) {
10345 //JLF
10346 #ifdef _XBOX
10347 
10348                         UpdateDemoTimer();
10349 
10350 #endif
10351                         if (key == A_ESCAPE && down && !Menus_AnyFullScreenVisible()) {
10352                                 Menus_CloseAll();
10353                         } else {
10354                                 Menu_HandleKey(menu, key, down );
10355                         }
10356                 } else {
10357                         trap_Key_SetCatcher( trap_Key_GetCatcher() & ~KEYCATCH_UI );
10358                         trap_Key_ClearStates();
10359                         trap_Cvar_Set( "cl_paused", "0" );
10360                 }
10361   }
10362 
10363   //if ((s > 0) && (s != menu_null_sound)) {
10364         //  trap_S_StartLocalSound( s, CHAN_LOCAL_SOUND );
10365   //}
10366 }

void _UI_MouseEvent int  dx,
int  dy
 

Definition at line 10374 of file ui_main.c.

References displayContextDef_t::cursorx, displayContextDef_t::cursory, Display_MouseMove(), Menu_Count(), NULL, SCREEN_HEIGHT, SCREEN_WIDTH, uiInfo_t::uiDC, and uiInfo.

Referenced by vmMain().

10375 {
10376         // update mouse screen position
10377         uiInfo.uiDC.cursorx += dx;
10378         if (uiInfo.uiDC.cursorx < 0)
10379                 uiInfo.uiDC.cursorx = 0;
10380         else if (uiInfo.uiDC.cursorx > SCREEN_WIDTH)
10381                 uiInfo.uiDC.cursorx = SCREEN_WIDTH;
10382 
10383         uiInfo.uiDC.cursory += dy;
10384         if (uiInfo.uiDC.cursory < 0)
10385                 uiInfo.uiDC.cursory = 0;
10386         else if (uiInfo.uiDC.cursory > SCREEN_HEIGHT)
10387                 uiInfo.uiDC.cursory = SCREEN_HEIGHT;
10388 
10389   if (Menu_Count() > 0) {
10390     //menuDef_t *menu = Menu_GetFocused();
10391     //Menu_HandleMouseMove(menu, uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory);
10392                 Display_MouseMove(NULL, uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory);
10393   }
10394 
10395 }

void _UI_Refresh int  realtime  ) 
 

Definition at line 937 of file ui_main.c.

References displayContextDef_t::Assets, bgForcePowerCost, cachedAssets_t::cursor, displayContextDef_t::cursorx, displayContextDef_t::cursory, displayContextDef_t::debug, FORCE_LEVEL_1, FP_SABER_DEFENSE, FP_SABER_OFFENSE, FPMessageTime, displayContextDef_t::FPS, displayContextDef_t::frameTime, vmCvar_t::integer, Menu_Count(), Menu_PaintAll(), NULL, parsedFPMessage, qfalse, displayContextDef_t::realTime, trap_Cvar_Set(), trap_G2API_SetTime(), UI_DrawHandlePic(), UI_FPS_FRAMES, ui_freeSaber, UI_GetStringEdString(), ui_rankChange, UI_ReadLegalForce(), UI_SetColor(), UI_UpdateCvars(), uiInfo_t::uiDC, uiForcePowersRank, uiForceRank, uiInfo, uiMaxRank, and UpdateForceUsed().

Referenced by vmMain().

00938 {
00939         static int index;
00940         static int      previousTimes[UI_FPS_FRAMES];
00941 
00942         //if ( !( trap_Key_GetCatcher() & KEYCATCH_UI ) ) {
00943         //      return;
00944         //}
00945 
00946         trap_G2API_SetTime(realtime, 0);
00947         trap_G2API_SetTime(realtime, 1);
00948         //ghoul2 timer must be explicitly updated during ui rendering.
00949 
00950         uiInfo.uiDC.frameTime = realtime - uiInfo.uiDC.realTime;
00951         uiInfo.uiDC.realTime = realtime;
00952 
00953         previousTimes[index % UI_FPS_FRAMES] = uiInfo.uiDC.frameTime;
00954         index++;
00955         if ( index > UI_FPS_FRAMES ) {
00956                 int i, total;
00957                 // average multiple frames together to smooth changes out a bit
00958                 total = 0;
00959                 for ( i = 0 ; i < UI_FPS_FRAMES ; i++ ) {
00960                         total += previousTimes[i];
00961                 }
00962                 if ( !total ) {
00963                         total = 1;
00964                 }
00965                 uiInfo.uiDC.FPS = 1000 * UI_FPS_FRAMES / total;
00966         }
00967 
00968 
00969 
00970         UI_UpdateCvars();
00971 
00972         if (Menu_Count() > 0) {
00973                 // paint all the menus
00974                 Menu_PaintAll();
00975                 // refresh server browser list
00976                 UI_DoServerRefresh();
00977                 // refresh server status
00978                 UI_BuildServerStatus(qfalse);
00979                 // refresh find player list
00980                 UI_BuildFindPlayerList(qfalse);
00981         } 
00982 #ifndef _XBOX   
00983         // draw cursor
00984         UI_SetColor( NULL );
00985         if (Menu_Count() > 0) {
00986                 UI_DrawHandlePic( uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory, 48, 48, uiInfo.uiDC.Assets.cursor);
00987         }
00988 #endif
00989 
00990 #ifndef NDEBUG
00991         if (uiInfo.uiDC.debug)
00992         {
00993                 // cursor coordinat