// Copyright (C) 1999-2000 Id Software, Inc. // /* ======================================================================= USER INTERFACE MAIN ======================================================================= */ #include "ui_local.h" /* ================ vmMain This is the only way control passes into the module. This must be the very first function compiled into the .qvm file ================ */ Q_EXPORT intptr_t vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) { switch ( command ) { case UI_GETAPIVERSION: return UI_API_VERSION; case UI_INIT: UI_Init(); return 0; case UI_SHUTDOWN: UI_Shutdown(); return 0; case UI_KEY_EVENT: UI_KeyEvent( arg0 ); return 0; case UI_MOUSE_EVENT: UI_MouseEvent( arg0, arg1 ); return 0; case UI_REFRESH: UI_Refresh( arg0 ); return 0; case UI_IS_FULLSCREEN: return UI_IsFullscreen(); case UI_SET_ACTIVE_MENU: UI_SetActiveMenu( (uiMenuCommand_t)arg0 ); return 0; case UI_CONSOLE_COMMAND: return UI_ConsoleCommand(); case UI_DRAW_CONNECT_SCREEN: UI_DrawConnectScreen( (qboolean)arg0 ); return 0; } return -1; } /* ================ cvars ================ */ typedef struct { vmCvar_t *vmCvar; char *cvarName; char *defaultString; int cvarFlags; } cvarTable_t; vmCvar_t ui_ffa_fraglimit; vmCvar_t ui_ffa_timelimit; vmCvar_t ui_tourney_fraglimit; vmCvar_t ui_tourney_timelimit; 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_botminplayers; vmCvar_t ui_spScores1; vmCvar_t ui_spScores2; vmCvar_t ui_spScores3; vmCvar_t ui_spScores4; vmCvar_t ui_spScores5; vmCvar_t ui_spAwards; vmCvar_t ui_spVideos; vmCvar_t ui_spSkill; vmCvar_t ui_weaponrespawn; vmCvar_t ui_speed; vmCvar_t ui_gravity; vmCvar_t ui_knockback; vmCvar_t ui_dmgmult; vmCvar_t ui_adaptRespawn; vmCvar_t ui_holoIntro; vmCvar_t ui_forcerespawn; vmCvar_t ui_respawnGhostTime; vmCvar_t ui_warmup; vmCvar_t ui_dowarmup; vmCvar_t ui_team_race_blue; vmCvar_t ui_team_race_red; vmCvar_t ui_pModAssimilation; vmCvar_t ui_pModDisintegration; vmCvar_t ui_pModActionHero; vmCvar_t ui_pModSpecialties; vmCvar_t ui_pModElimination; vmCvar_t ui_spSelection; 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_server1; vmCvar_t ui_server2; vmCvar_t ui_server3; vmCvar_t ui_server4; vmCvar_t ui_server5; vmCvar_t ui_server6; vmCvar_t ui_server7; vmCvar_t ui_server8; vmCvar_t ui_server9; vmCvar_t ui_server10; vmCvar_t ui_server11; vmCvar_t ui_server12; vmCvar_t ui_server13; vmCvar_t ui_server14; vmCvar_t ui_server15; vmCvar_t ui_server16; vmCvar_t ui_server17; vmCvar_t ui_server18; vmCvar_t ui_server19; vmCvar_t ui_server20; vmCvar_t ui_server21; vmCvar_t ui_server22; vmCvar_t ui_server23; vmCvar_t ui_server24; vmCvar_t ui_server25; vmCvar_t ui_server26; vmCvar_t ui_server27; vmCvar_t ui_server28; vmCvar_t ui_server29; vmCvar_t ui_server30; vmCvar_t ui_server31; vmCvar_t ui_server32; vmCvar_t ui_cdkeychecked; vmCvar_t ui_cdkeychecked2; vmCvar_t ui_language; vmCvar_t ui_s_language; vmCvar_t ui_k_language; vmCvar_t ui_playerClass; vmCvar_t ui_playerRank; //vmCvar_t ui_precacheweapons; vmCvar_t ui_allowvote; vmCvar_t ui_chatsallowed; vmCvar_t ui_allowsuicide; vmCvar_t ui_selfdamage; vmCvar_t ui_rpg; vmCvar_t ui_kickspammers; vmCvar_t ui_kicksuiciders; vmCvar_t ui_allowspmaps; vmCvar_t ui_rangetricorder; vmCvar_t ui_rangehypo; vmCvar_t ui_norpgclasses; vmCvar_t ui_forceclasscolor; vmCvar_t ui_nosecurity; vmCvar_t ui_nomarine; vmCvar_t ui_nomedical; vmCvar_t ui_noscience; vmCvar_t ui_nocommand; vmCvar_t ui_noengineer; vmCvar_t ui_noalien; vmCvar_t ui_nomaker; vmCvar_t ui_nocloak; vmCvar_t ui_noflight; vmCvar_t ui_phaserdmg; vmCvar_t ui_rifledmg; vmCvar_t ui_stasisdmg; vmCvar_t ui_imoddmg; vmCvar_t ui_noweapons; vmCvar_t ui_alienflags; vmCvar_t ui_marineflags; vmCvar_t ui_securityflags; vmCvar_t ui_makerflags; vmCvar_t ui_medicalflags; vmCvar_t ui_scienceflags; vmCvar_t ui_commandflags; vmCvar_t ui_engineerflags; vmCvar_t ui_welcomemessage; vmCvar_t ui_timedmessage; vmCvar_t ui_timedmessagetime; //vmCvar_t ui_lastactive; //RPG-X | Phenix | 25/02/2005 (Trying to make a timer for intro) //TiM - crashes RPG-X -_- vmCvar_t ui_kickAfterXkills; //RPG-X: TiM - Variables - 8-8-2005 vmCvar_t ui_dynamicCrosshair; vmCvar_t ui_dynamicLensFlares; vmCvar_t ui_currentRankSet; //RPG-X | TiM | Users can choose the rank they want in the main ui vmCvar_t ui_currentClassSet; vmCvar_t ui_age; vmCvar_t ui_height; vmCvar_t ui_weight; vmCvar_t ui_race; vmCvar_t ui_defaultChar; //RPG-X: TiM - UI Emote variables //-The last 16 emotes played vmCvar_t ui_recentEmote1; vmCvar_t ui_recentEmote2; vmCvar_t ui_recentEmote3; vmCvar_t ui_recentEmote4; vmCvar_t ui_recentEmote5; vmCvar_t ui_recentEmote6; vmCvar_t ui_recentEmote7; vmCvar_t ui_recentEmote8; vmCvar_t ui_recentEmote9; vmCvar_t ui_recentEmote10; vmCvar_t ui_recentEmote11; vmCvar_t ui_recentEmote12; vmCvar_t ui_recentEmote13; vmCvar_t ui_recentEmote14; vmCvar_t ui_recentEmote15; vmCvar_t ui_recentEmote16; //-Users can have up to 16 favorite emotes vmCvar_t ui_favoriteEmote1; vmCvar_t ui_favoriteEmote2; vmCvar_t ui_favoriteEmote3; vmCvar_t ui_favoriteEmote4; vmCvar_t ui_favoriteEmote5; vmCvar_t ui_favoriteEmote6; vmCvar_t ui_favoriteEmote7; vmCvar_t ui_favoriteEmote8; vmCvar_t ui_favoriteEmote9; vmCvar_t ui_favoriteEmote10; vmCvar_t ui_favoriteEmote11; vmCvar_t ui_favoriteEmote12; vmCvar_t ui_favoriteEmote13; vmCvar_t ui_favoriteEmote14; vmCvar_t ui_favoriteEmote15; vmCvar_t ui_favoriteEmote16; //TiM - SecurityCode vmCvar_t sv_securityHash; vmCvar_t sv_securityCode; //Widescreen support vmCvar_t ui_handleWidescreen; static cvarTable_t cvarTable[] = { { &ui_ffa_fraglimit, "ui_ffa_fraglimit", "20", CVAR_ARCHIVE }, { &ui_ffa_timelimit, "ui_ffa_timelimit", "0", CVAR_ARCHIVE }, { &ui_tourney_fraglimit, "ui_tourney_fraglimit", "0", CVAR_ARCHIVE }, { &ui_tourney_timelimit, "ui_tourney_timelimit", "15", CVAR_ARCHIVE }, { &ui_team_fraglimit, "ui_team_fraglimit", "0", CVAR_ARCHIVE }, { &ui_team_timelimit, "ui_team_timelimit", "20", CVAR_ARCHIVE }, { &ui_team_friendly, "ui_team_friendly", "1", CVAR_ARCHIVE }, { &ui_ctf_capturelimit, "ui_ctf_capturelimit", "8", CVAR_ARCHIVE }, { &ui_ctf_timelimit, "ui_ctf_timelimit", "30", CVAR_ARCHIVE }, { &ui_ctf_friendly, "ui_ctf_friendly", "0", CVAR_ARCHIVE }, { &ui_arenasFile, "g_arenasFile", "", CVAR_INIT|CVAR_ROM }, { &ui_botsFile, "g_botsFile", "", CVAR_INIT|CVAR_ROM }, // Used to have CVAR_ARCHIVE. { &ui_botminplayers, "bot_minplayers","0", CVAR_SERVERINFO }, { &ui_spScores1, "g_spScores1", "", CVAR_ARCHIVE | CVAR_ROM }, { &ui_spScores2, "g_spScores2", "", CVAR_ARCHIVE | CVAR_ROM }, { &ui_spScores3, "g_spScores3", "", CVAR_ARCHIVE | CVAR_ROM }, { &ui_spScores4, "g_spScores4", "", CVAR_ARCHIVE | CVAR_ROM }, { &ui_spScores5, "g_spScores5", "", CVAR_ARCHIVE | CVAR_ROM }, { &ui_spAwards, "g_spAwards", "", CVAR_ARCHIVE | CVAR_ROM }, { &ui_spVideos, "g_spVideos", "", CVAR_ARCHIVE | CVAR_ROM }, { &ui_spSkill, "g_spSkill", "2", CVAR_ARCHIVE | CVAR_LATCH }, { &ui_weaponrespawn, "g_weaponrespawn", "5", CVAR_ARCHIVE}, { &ui_speed, "g_speed", "250", CVAR_SERVERINFO | CVAR_ARCHIVE}, { &ui_gravity, "g_gravity", "800", CVAR_SERVERINFO | CVAR_ARCHIVE}, { &ui_knockback, "g_knockback", "500", CVAR_ARCHIVE}, { &ui_dmgmult, "g_dmgmult", "1", CVAR_ARCHIVE}, { &ui_adaptRespawn, "g_adaptrespawn", "1", CVAR_ARCHIVE}, { &ui_holoIntro, "g_holoIntro", "1", CVAR_ARCHIVE}, { &ui_forcerespawn, "g_forcerespawn", "0", CVAR_ARCHIVE }, { &ui_respawnGhostTime, "g_ghostRespawn", "5", CVAR_ARCHIVE }, { &ui_dowarmup, "g_dowarmup", "0", CVAR_ARCHIVE }, { &ui_warmup, "g_warmup", "20", CVAR_ARCHIVE }, { &ui_team_race_blue, "g_team_group_blue", "", CVAR_LATCH}, // Used to have CVAR_ARCHIVE { &ui_team_race_red, "g_team_group_red", "", CVAR_LATCH}, // Used to have CVAR_ARCHIVE { &ui_pModAssimilation, "g_pModAssimilation", "0", CVAR_SERVERINFO | CVAR_LATCH }, { &ui_pModDisintegration, "g_pModDisintegration", "0", CVAR_SERVERINFO | CVAR_LATCH }, { &ui_pModActionHero, "g_pModActionHero", "0", CVAR_SERVERINFO | CVAR_LATCH }, { &ui_pModSpecialties, "g_pModSpecialties", "0", CVAR_SERVERINFO | CVAR_LATCH }, { &ui_pModElimination, "g_pModElimination", "0", CVAR_SERVERINFO | CVAR_LATCH }, { &ui_spSelection, "ui_spSelection", "", CVAR_ROM }, { &ui_browserMaster, "ui_browserMaster", "0", CVAR_ARCHIVE }, { &ui_browserGameType, "ui_browserGameType", "0", CVAR_ARCHIVE }, { &ui_browserSortKey, "ui_browserSortKey", "4", CVAR_ARCHIVE }, { &ui_browserShowFull, "ui_browserShowFull", "1", CVAR_ARCHIVE }, { &ui_browserShowEmpty, "ui_browserShowEmpty", "1", CVAR_ARCHIVE }, { &ui_drawCrosshair, "cg_drawCrosshair", "1", CVAR_ARCHIVE }, { &ui_drawCrosshairNames, "cg_drawCrosshairNames", "1", CVAR_ARCHIVE }, { &ui_marks, "cg_marks", "1", CVAR_ARCHIVE }, { &ui_server1, "server1", "", CVAR_ARCHIVE }, { &ui_server2, "server2", "", CVAR_ARCHIVE }, { &ui_server3, "server3", "", CVAR_ARCHIVE }, { &ui_server4, "server4", "", CVAR_ARCHIVE }, { &ui_server5, "server5", "", CVAR_ARCHIVE }, { &ui_server6, "server6", "", CVAR_ARCHIVE }, { &ui_server7, "server7", "", CVAR_ARCHIVE }, { &ui_server8, "server8", "", CVAR_ARCHIVE }, { &ui_server9, "server9", "", CVAR_ARCHIVE }, { &ui_server10, "server10", "", CVAR_ARCHIVE }, { &ui_server11, "server11", "", CVAR_ARCHIVE }, { &ui_server12, "server12", "", CVAR_ARCHIVE }, { &ui_server13, "server13", "", CVAR_ARCHIVE }, { &ui_server14, "server14", "", CVAR_ARCHIVE }, { &ui_server15, "server15", "", CVAR_ARCHIVE }, { &ui_server16, "server16", "", CVAR_ARCHIVE }, { &ui_server17, "server17", "", CVAR_ARCHIVE }, { &ui_server18, "server18", "", CVAR_ARCHIVE }, { &ui_server19, "server19", "", CVAR_ARCHIVE }, { &ui_server20, "server20", "", CVAR_ARCHIVE }, { &ui_server21, "server21", "", CVAR_ARCHIVE }, { &ui_server22, "server22", "", CVAR_ARCHIVE }, { &ui_server23, "server23", "", CVAR_ARCHIVE }, { &ui_server24, "server24", "", CVAR_ARCHIVE }, { &ui_server25, "server25", "", CVAR_ARCHIVE }, { &ui_server26, "server26", "", CVAR_ARCHIVE }, { &ui_server27, "server27", "", CVAR_ARCHIVE }, { &ui_server28, "server28", "", CVAR_ARCHIVE }, { &ui_server29, "server29", "", CVAR_ARCHIVE }, { &ui_server30, "server30", "", CVAR_ARCHIVE }, { &ui_server31, "server31", "", CVAR_ARCHIVE }, { &ui_server32, "server32", "", CVAR_ARCHIVE }, { &ui_cdkeychecked, "ui_cdkeychecked", "0", CVAR_ARCHIVE | CVAR_NORESTART}, { &ui_cdkeychecked2, "ui_cdkeychecked2", "0", CVAR_ROM}, { &ui_language, "g_language", "", CVAR_ARCHIVE | CVAR_NORESTART}, { &ui_s_language, "s_language", "", CVAR_ARCHIVE | CVAR_NORESTART}, { &ui_k_language, "k_language", "", CVAR_ARCHIVE | CVAR_NORESTART}, { &ui_playerClass, "ui_playerClass", "noclass", CVAR_ARCHIVE /*| CVAR_ROM*/ | CVAR_USERINFO }, { &ui_playerRank, "ui_playerRank", "crewman", CVAR_ARCHIVE /*| CVAR_ROM*/ | CVAR_USERINFO }, //RPG-X: TiM- Rank // { &ui_precacheweapons, "ui_precacheweapons", "1", CVAR_ARCHIVE}, { &ui_allowvote, "rpg_allowVote", "1", CVAR_ARCHIVE }, { &ui_chatsallowed, "rpg_chatsAllowed", "10", CVAR_ARCHIVE }, { &ui_allowsuicide, "rpg_allowSuicide", "1", CVAR_ARCHIVE }, { &ui_selfdamage, "rpg_selfDamage", "1", CVAR_ARCHIVE}, { &ui_rpg, "rpg_rpg", "1", CVAR_ARCHIVE}, { &ui_kickspammers, "rpg_kickSpammers", "0", CVAR_ARCHIVE}, { &ui_kicksuiciders, "rpg_kickSuiciders", "0", CVAR_ARCHIVE}, { &ui_allowspmaps, "rpg_allowSPMaps", "0", CVAR_ARCHIVE}, { &ui_rangetricorder, "rpg_rangeTricorder", "128", CVAR_ARCHIVE}, { &ui_rangehypo, "rpg_rangeHypo", "32", CVAR_ARCHIVE}, { &ui_norpgclasses, "rpg_noRPGClasses", "0", CVAR_ARCHIVE}, { &ui_forceclasscolor, "rpg_forceClassColor", "0", CVAR_ARCHIVE}, { &ui_nosecurity, "rpg_noSecurity", "0", CVAR_ARCHIVE}, { &ui_nomarine, "rpg_noMarine", "0", CVAR_ARCHIVE}, { &ui_nomedical, "rpg_noMedical", "0", CVAR_ARCHIVE}, { &ui_noscience, "rpg_noScience", "0", CVAR_ARCHIVE}, { &ui_nocommand, "rpg_noCommand", "0", CVAR_ARCHIVE}, { &ui_noengineer, "rpg_noEngineer", "0", CVAR_ARCHIVE}, { &ui_noalien, "rpg_noAlien", "0", CVAR_ARCHIVE}, { &ui_nomaker, "rpg_noMaker", "0", CVAR_ARCHIVE}, { &ui_nocloak, "rpg_noCloak", "0", CVAR_ARCHIVE}, { &ui_noflight, "rpg_noFlight", "0", CVAR_ARCHIVE}, { &ui_phaserdmg, "rpg_phaserDmg", "1", CVAR_ARCHIVE}, { &ui_rifledmg, "rpg_rifleDmg", "1", CVAR_ARCHIVE}, { &ui_stasisdmg, "rpg_stasisDmg", "1", CVAR_ARCHIVE}, { &ui_imoddmg, "rpg_imodDmg", "1", CVAR_ARCHIVE}, { &ui_noweapons, "rpg_noWeapons", "0", CVAR_ARCHIVE}, { &ui_alienflags, "rpg_alienFlags", "1026", CVAR_ARCHIVE }, //16 { &ui_marineflags, "rpg_marineFlags", "12398", CVAR_ARCHIVE }, //111 { &ui_securityflags, "rpg_securityFlags", "110", CVAR_ARCHIVE }, //15 { &ui_makerflags, "rpg_adminFlags", "65534", CVAR_ARCHIVE }, //24361 { &ui_medicalflags, "rpg_medicalFlags", "14382", CVAR_ARCHIVE }, //231 { &ui_scienceflags, "rpg_scienceFlags", "46", CVAR_ARCHIVE }, //7 { &ui_commandflags, "rpg_commandFlags", "62", CVAR_ARCHIVE }, //6 { &ui_engineerflags, "rpg_engineerFlags", "49198", CVAR_ARCHIVE }, //775 { &ui_welcomemessage, "rpg_welcomeMessage", "Welcome to the RPG-X Mod", CVAR_ARCHIVE }, { &ui_timedmessage, "rpg_timedMessage", "Server is in: Character Development Mode", CVAR_ARCHIVE }, { &ui_timedmessagetime, "rpg_timedMessageTime", "5", CVAR_ARCHIVE }, { &ui_kickAfterXkills, "rpg_kickAfterXkills", "2", CVAR_ARCHIVE }, // { &ui_lastactive, "sys_lastactive", "0", CVAR_ARCHIVE }, //RPG-X | Phenix | 25/02/2005 (Trying to make a timer for intro) //TiM : RPG-X variables 8-8-2005 { &ui_dynamicLensFlares, "cg_dynamicLensFlares", "1", CVAR_ARCHIVE }, { &ui_dynamicCrosshair, "cg_dynamicCrosshair", "1", CVAR_ARCHIVE }, { &ui_currentRankSet, "ui_currentRankSet", RANKSET_DEFAULT, CVAR_ARCHIVE | CVAR_ROM }, { &ui_currentClassSet, "ui_currentClassSet", CLASS_DEFAULT, CVAR_ARCHIVE | CVAR_ROM }, //TiM: Local UI versions of the PMS parameters { &ui_age, "age", "Unknown", CVAR_ARCHIVE | CVAR_USERINFO }, { &ui_height, "height", "1.0", CVAR_ARCHIVE | CVAR_USERINFO }, { &ui_weight, "weight", "1.0", CVAR_ARCHIVE | CVAR_USERINFO }, { &ui_race, "race", "Unknown", CVAR_ARCHIVE | CVAR_USERINFO }, { &ui_defaultChar, "cg_defaultChar", DEFAULT_CHAR, CVAR_ARCHIVE }, //TiM: Emote CVARS - Recently played Emotes { &ui_recentEmote1, "ui_recentEmote1", "-1", CVAR_ARCHIVE }, { &ui_recentEmote2, "ui_recentEmote2", "-1", CVAR_ARCHIVE }, { &ui_recentEmote3, "ui_recentEmote3", "-1", CVAR_ARCHIVE }, { &ui_recentEmote4, "ui_recentEmote4", "-1", CVAR_ARCHIVE }, { &ui_recentEmote5, "ui_recentEmote5", "-1", CVAR_ARCHIVE }, { &ui_recentEmote6, "ui_recentEmote6", "-1", CVAR_ARCHIVE }, { &ui_recentEmote7, "ui_recentEmote7", "-1", CVAR_ARCHIVE }, { &ui_recentEmote8, "ui_recentEmote8", "-1", CVAR_ARCHIVE }, { &ui_recentEmote9, "ui_recentEmote9", "-1", CVAR_ARCHIVE }, { &ui_recentEmote10, "ui_recentEmote10", "-1", CVAR_ARCHIVE }, { &ui_recentEmote11, "ui_recentEmote11", "-1", CVAR_ARCHIVE }, { &ui_recentEmote12, "ui_recentEmote12", "-1", CVAR_ARCHIVE }, { &ui_recentEmote13, "ui_recentEmote13", "-1", CVAR_ARCHIVE }, { &ui_recentEmote14, "ui_recentEmote14", "-1", CVAR_ARCHIVE }, { &ui_recentEmote15, "ui_recentEmote15", "-1", CVAR_ARCHIVE }, { &ui_recentEmote16, "ui_recentEmote16", "-1", CVAR_ARCHIVE }, //Emote CVARS - Favorites { &ui_favoriteEmote1, "ui_favoriteEmote1", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote2, "ui_favoriteEmote2", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote3, "ui_favoriteEmote3", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote4, "ui_favoriteEmote4", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote5, "ui_favoriteEmote5", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote6, "ui_favoriteEmote6", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote7, "ui_favoriteEmote7", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote8, "ui_favoriteEmote8", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote9, "ui_favoriteEmote9", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote10, "ui_favoriteEmote10", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote11, "ui_favoriteEmote11", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote12, "ui_favoriteEmote12", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote13, "ui_favoriteEmote13", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote14, "ui_favoriteEmote14", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote15, "ui_favoriteEmote15", "-1", CVAR_ARCHIVE }, { &ui_favoriteEmote16, "ui_favoriteEmote16", "-1", CVAR_ARCHIVE }, { &sv_securityHash, "sv_securityHash", "4294967295", CVAR_ARCHIVE | CVAR_ROM | CVAR_NORESTART }, { &sv_securityCode, "sv_securityCode", "4294967295", CVAR_ARCHIVE | CVAR_USERINFO | CVAR_ROM | CVAR_NORESTART }, { &ui_handleWidescreen, "ui_handleWidescreen", "1", CVAR_ARCHIVE }, }; static int cvarTableSize = sizeof(cvarTable) / sizeof(cvarTable[0]); /* ================= UI_RegisterCvars ================= */ void UI_RegisterCvars( void ) { int i; cvarTable_t *cv; //RPG-X: RedTechie - Keep no class default //RPG-X: TiM - just commented this out for now to see if I can add class support to the main UI // trap_Cvar_Set( "ui_playerclass", "NOCLASS" ); for ( i = 0, cv = cvarTable ; i < cvarTableSize ; i++, cv++ ) { trap_Cvar_Register( cv->vmCvar, cv->cvarName, cv->defaultString, cv->cvarFlags ); } } /* ================= UI_UpdateCvars ================= */ void UI_UpdateCvars( void ) { int i; cvarTable_t *cv; //TiM - unexplained engine bug for ( i = 0, cv = cvarTable ; i < cvarTableSize ; i++, cv++ ) { if ( cv->vmCvar->handle >= 1024 || cv->vmCvar->handle <= 0 ) { //Com_Printf( S_COLOR_RED "ERROR: CVAR: %s Handle: %i \n", cv->cvarName, cv->vmCvar->handle ); } else trap_Cvar_Update( cv->vmCvar ); } } //TiM I wanted to make this linked in the function in pMove, but it seems impossible to get the right scope //So I'll make a local version here int UI_GetAnim ( int anim, int weapon, qboolean upper ) { // Called when player is in idle crouching switch ( anim ) { case ANIM_CROUCH: //2 handed weapon - "heavy" switch (weapon) { case WP_7: case WP_8: case WP_9: if (upper) return BOTH_STAND2; else return LEGS_KNEEL1; break; //2 handed weapon - "light" case WP_6: //case WP_7: if (upper) return TORSO_WEAPONREADY2; else return LEGS_KNEEL1; break; //1 handed weapon - "phaser" case WP_5: case WP_10: if ( upper ) return TORSO_WEAPONPOSE1; else return BOTH_CROUCH1IDLE; break; case WP_4: if (upper) return TORSO_COFFEE; //break; //Generic tools - "everything else" default: return BOTH_CROUCH2IDLE; break; } break; //Called when player is in idle standing case ANIM_IDLE: //2 handed weapon - "heavy" switch (weapon) { //case WP_7: case WP_8: case WP_9: case WP_7: return BOTH_STAND4; break; //2 handed weapon - "light" case WP_6: return BOTH_STAND4; break; //1 handed weapon - "phaser" case WP_5: case WP_10: if (upper) return BOTH_STAND1; //TORSO_WEAPONIDLE1 else return BOTH_STAND1; break; //Generic tools - "everything else" case WP_4: if (upper) return TORSO_COFFEE; else return BOTH_STAND1; break; default: return BOTH_STAND1; break; } break; //Called when player fires their weapon case ANIM_ATTACK: //2 handed weapon - "heavy" switch (weapon) { //case WP_7: case WP_8: case WP_9: case WP_7: return BOTH_ATTACK3; break; //2 handed weapon - "light" case WP_6: if (upper) return BOTH_ATTACK2; else return BOTH_ATTACK3; break; //1 handed weapon - "phaser" case WP_5: case WP_10: if (upper) return TORSO_WEAPONREADY1; else return BOTH_STAND1; break; //Other Tools "padd" case WP_3: if (upper) return TORSO_PADD1; else return BOTH_STAND1; break; //Other Tools "tricorder" case WP_2: if (upper) return TORSO_TRICORDER1; else return BOTH_STAND1; break; //Other: "Medkit" case WP_11: if (upper) return TORSO_ACTIVATEMEDKIT1; else return BOTH_STAND1; break; //Other: "Hypo case WP_12: if (upper) return TORSO_HYPOSPRAY1; else return BOTH_STAND1; //Other: "Toolkit" /*case WP_14: //Return nothing. //A bit hacky, but the engine accepts it :P break;*/ //Other Tools "everything else" /*case WP_1: switch(rand()%13) { case 0: return TORSO_HANDGESTURE1; case 1: return TORSO_HANDGESTURE2; case 2: return TORSO_HANDGESTURE3; case 3: return TORSO_HANDGESTURE4; case 4: //PM_StartTorsoAnim( TORSO_HANDGESTURE5 ); break; case 5: return TORSO_HANDGESTURE6; case 6: return TORSO_HANDGESTURE7; case 7: return TORSO_HANDGESTURE8; case 8: return TORSO_HANDGESTURE9; case 9: return TORSO_HANDGESTURE10; case 10: return TORSO_HANDGESTURE11; case 11: return TORSO_HANDGESTURE12; case 12: return TORSO_HANDGESTURE13; } break;*/ case WP_4: if (upper) return TORSO_COFFEE; //break; default: if (upper) return TORSO_WEAPONREADY1; else return BOTH_STAND1; break; } break; //When the player jumps case ANIM_JUMP: return BOTH_JUMP1; //When the player runs case ANIM_RUN: //2 handed weapons switch (weapon) { //case WP_7: case WP_8: case WP_9: case WP_6: case WP_7: if (upper) return BOTH_RUN2; else return BOTH_RUN1; break; case WP_4: if (upper) return TORSO_COFFEE; //break; //EVERYTHING ELSE default: return BOTH_RUN1; } break; //When the player walks case ANIM_WALK: //2 handed weapons switch (weapon) { //case WP_7: case WP_8: case WP_9: case WP_6: case WP_7: return BOTH_WALK4; break; //Other Tools "everything else" case WP_4: if (upper) return TORSO_COFFEE; //break; default: return BOTH_WALK1; break; } break; //When the player walks case ANIM_BACK: //2 handed weapons switch (weapon) { //case WP_7: case WP_8: case WP_9: case WP_6: case WP_7: if ( upper ) return BOTH_WALK4; else return LEGS_WALKBACK1; break; case WP_4: if (upper) return TORSO_COFFEE; //break; //Other Tools "everything else" default: if ( upper ) return BOTH_WALK1; else return LEGS_WALKBACK1; break; } break; } return BOTH_STAND1; }