mirror of
https://github.com/blendogames/thirtyflightsofloving.git
synced 2024-11-14 08:31:04 +00:00
Refactored spincontrol menu control with value lists, simplifying menu implementations.
Simplified loading and saving of cvars in slider menu control. Enlarged text in Game, Multiplayer, and Options menus. Fixed repeat of failed file causing HTTP downloads to restart. Added cl_zoommode cvar to simplify Lazarus zoom command. Changed zoom command to use new cl_zoommode cvar in default Lazarus and missionpack DLLs. Removed unused "crossh" cvar in default Lazarus and missionpack DLLs. Fixed Makron not having a classname when spawned from Jorg in default Lazarus and missionpack DLLs. Made Tactician Gunner ignore small amounts of damage in missionpack DLL.
This commit is contained in:
parent
69bbad2b9a
commit
3ce18b138c
48 changed files with 1508 additions and 1446 deletions
|
@ -153,7 +153,7 @@ void CL_RequestNextDownload (void)
|
||||||
{
|
{
|
||||||
precache_pak++;
|
precache_pak++;
|
||||||
if (strlen(cl.configstrings[CS_PAKFILE])) {
|
if (strlen(cl.configstrings[CS_PAKFILE])) {
|
||||||
if (!CL_CheckOrDownloadFile(cl.configstrings[CS_PAKFILE]))
|
if ( !CL_CheckOrDownloadFile(cl.configstrings[CS_PAKFILE]) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,7 @@ void CL_RequestNextDownload (void)
|
||||||
if (precache_check == CS_MODELS) { // confirm map
|
if (precache_check == CS_MODELS) { // confirm map
|
||||||
precache_check = CS_MODELS+2; // 0 isn't used
|
precache_check = CS_MODELS+2; // 0 isn't used
|
||||||
if (allow_download_maps->integer) {
|
if (allow_download_maps->integer) {
|
||||||
if (!CL_CheckOrDownloadFile(cl.configstrings[CS_MODELS+1]))
|
if ( !CL_CheckOrDownloadFile(cl.configstrings[CS_MODELS+1]) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,7 +180,7 @@ void CL_RequestNextDownload (void)
|
||||||
}
|
}
|
||||||
if (precache_model_skin == 0)
|
if (precache_model_skin == 0)
|
||||||
{
|
{
|
||||||
if (!CL_CheckOrDownloadFile(cl.configstrings[precache_check])) {
|
if ( !CL_CheckOrDownloadFile(cl.configstrings[precache_check]) ) {
|
||||||
precache_model_skin = 1;
|
precache_model_skin = 1;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
|
@ -270,7 +270,7 @@ void CL_RequestNextDownload (void)
|
||||||
else if (strlen(skinname) > MD2_MAX_SKINNAME-1)
|
else if (strlen(skinname) > MD2_MAX_SKINNAME-1)
|
||||||
Com_Error (ERR_DROP, "Model %s has too long a skin path: %s", cl.configstrings[precache_check], skinname);
|
Com_Error (ERR_DROP, "Model %s has too long a skin path: %s", cl.configstrings[precache_check], skinname);
|
||||||
|
|
||||||
if (!CL_CheckOrDownloadFile(skinname))
|
if ( !CL_CheckOrDownloadFile(skinname) )
|
||||||
{
|
{
|
||||||
precache_model_skin++;
|
precache_model_skin++;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
|
@ -298,7 +298,7 @@ void CL_RequestNextDownload (void)
|
||||||
else if (strlen(skinname) > MD3_MAX_PATH-1)
|
else if (strlen(skinname) > MD3_MAX_PATH-1)
|
||||||
Com_Error (ERR_DROP, "Model %s has too long a skin path: %s", cl.configstrings[precache_check], skinname);
|
Com_Error (ERR_DROP, "Model %s has too long a skin path: %s", cl.configstrings[precache_check], skinname);
|
||||||
|
|
||||||
if (!CL_CheckOrDownloadFile(skinname))
|
if ( !CL_CheckOrDownloadFile(skinname) )
|
||||||
{
|
{
|
||||||
precache_model_skin++;
|
precache_model_skin++;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
|
@ -322,7 +322,7 @@ void CL_RequestNextDownload (void)
|
||||||
else if (strlen(skinname) > MD2_MAX_SKINNAME-1)
|
else if (strlen(skinname) > MD2_MAX_SKINNAME-1)
|
||||||
Com_Error (ERR_DROP, "Sprite %s has too long a skin path: %s", cl.configstrings[precache_check], skinname);
|
Com_Error (ERR_DROP, "Sprite %s has too long a skin path: %s", cl.configstrings[precache_check], skinname);
|
||||||
|
|
||||||
if (!CL_CheckOrDownloadFile(skinname))
|
if ( !CL_CheckOrDownloadFile(skinname) )
|
||||||
{
|
{
|
||||||
precache_model_skin++;
|
precache_model_skin++;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
|
@ -353,7 +353,7 @@ void CL_RequestNextDownload (void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Com_sprintf(fn, sizeof(fn), "sound/%s", cl.configstrings[precache_check++]);
|
Com_sprintf(fn, sizeof(fn), "sound/%s", cl.configstrings[precache_check++]);
|
||||||
if (!CL_CheckOrDownloadFile(fn))
|
if ( !CL_CheckOrDownloadFile(fn) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -366,7 +366,7 @@ void CL_RequestNextDownload (void)
|
||||||
while (precache_check < cs_images+max_images &&
|
while (precache_check < cs_images+max_images &&
|
||||||
cl.configstrings[precache_check][0]) {
|
cl.configstrings[precache_check][0]) {
|
||||||
Com_sprintf(fn, sizeof(fn), "pics/%s.pcx", cl.configstrings[precache_check++]);
|
Com_sprintf(fn, sizeof(fn), "pics/%s.pcx", cl.configstrings[precache_check++]);
|
||||||
if (!CL_CheckOrDownloadFile(fn))
|
if ( !CL_CheckOrDownloadFile(fn) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
precache_check = cs_playerskins;
|
precache_check = cs_playerskins;
|
||||||
|
@ -457,7 +457,7 @@ void CL_RequestNextDownload (void)
|
||||||
{
|
{
|
||||||
case 0: // model
|
case 0: // model
|
||||||
Com_sprintf(fn, sizeof(fn), "players/%s/tris.md2", model);
|
Com_sprintf(fn, sizeof(fn), "players/%s/tris.md2", model);
|
||||||
if (!CL_CheckOrDownloadFile(fn)) {
|
if ( !CL_CheckOrDownloadFile(fn) ) {
|
||||||
precache_check = cs_playerskins + i * PLAYER_MULT + 1;
|
precache_check = cs_playerskins + i * PLAYER_MULT + 1;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
|
@ -466,7 +466,7 @@ void CL_RequestNextDownload (void)
|
||||||
|
|
||||||
case 1: // weapon model
|
case 1: // weapon model
|
||||||
Com_sprintf(fn, sizeof(fn), "players/%s/weapon.md2", model);
|
Com_sprintf(fn, sizeof(fn), "players/%s/weapon.md2", model);
|
||||||
if (!CL_CheckOrDownloadFile(fn)) {
|
if ( !CL_CheckOrDownloadFile(fn) ) {
|
||||||
precache_check = cs_playerskins + i * PLAYER_MULT + 2;
|
precache_check = cs_playerskins + i * PLAYER_MULT + 2;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
|
@ -475,7 +475,7 @@ void CL_RequestNextDownload (void)
|
||||||
|
|
||||||
case 2: // weapon skin
|
case 2: // weapon skin
|
||||||
Com_sprintf(fn, sizeof(fn), "players/%s/weapon.pcx", model);
|
Com_sprintf(fn, sizeof(fn), "players/%s/weapon.pcx", model);
|
||||||
if (!CL_CheckOrDownloadFile(fn)) {
|
if ( !CL_CheckOrDownloadFile(fn) ) {
|
||||||
precache_check = cs_playerskins + i * PLAYER_MULT + 3;
|
precache_check = cs_playerskins + i * PLAYER_MULT + 3;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
|
@ -484,7 +484,7 @@ void CL_RequestNextDownload (void)
|
||||||
|
|
||||||
case 3: // skin
|
case 3: // skin
|
||||||
Com_sprintf(fn, sizeof(fn), "players/%s/%s.pcx", model, skin);
|
Com_sprintf(fn, sizeof(fn), "players/%s/%s.pcx", model, skin);
|
||||||
if (!CL_CheckOrDownloadFile(fn)) {
|
if ( !CL_CheckOrDownloadFile(fn) ) {
|
||||||
precache_check = cs_playerskins + i * PLAYER_MULT + 4;
|
precache_check = cs_playerskins + i * PLAYER_MULT + 4;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
|
@ -493,7 +493,7 @@ void CL_RequestNextDownload (void)
|
||||||
|
|
||||||
case 4: // skin_i
|
case 4: // skin_i
|
||||||
Com_sprintf(fn, sizeof(fn), "players/%s/%s_i.pcx", model, skin);
|
Com_sprintf(fn, sizeof(fn), "players/%s/%s_i.pcx", model, skin);
|
||||||
if (!CL_CheckOrDownloadFile(fn)) {
|
if ( !CL_CheckOrDownloadFile(fn) ) {
|
||||||
precache_check = cs_playerskins + i * PLAYER_MULT + 5;
|
precache_check = cs_playerskins + i * PLAYER_MULT + 5;
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
|
@ -564,7 +564,7 @@ void CL_RequestNextDownload (void)
|
||||||
else
|
else
|
||||||
Com_sprintf(fn, sizeof(fn), "env/%s%s.tga",
|
Com_sprintf(fn, sizeof(fn), "env/%s%s.tga",
|
||||||
cl.configstrings[CS_SKY], env_suf[n/2]);
|
cl.configstrings[CS_SKY], env_suf[n/2]);
|
||||||
if (!CL_CheckOrDownloadFile(fn))
|
if ( !CL_CheckOrDownloadFile(fn) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -589,7 +589,7 @@ void CL_RequestNextDownload (void)
|
||||||
char fn[MAX_OSPATH];
|
char fn[MAX_OSPATH];
|
||||||
|
|
||||||
Com_sprintf(fn, sizeof(fn), "textures/%s.wal", map_surfaces[precache_tex++].rname);
|
Com_sprintf(fn, sizeof(fn), "textures/%s.wal", map_surfaces[precache_tex++].rname);
|
||||||
if (!CL_CheckOrDownloadFile(fn))
|
if ( !CL_CheckOrDownloadFile(fn) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -612,7 +612,7 @@ void CL_RequestNextDownload (void)
|
||||||
char fn[MAX_OSPATH];
|
char fn[MAX_OSPATH];
|
||||||
|
|
||||||
Com_sprintf(fn, sizeof(fn), "textures/%s.tga", map_surfaces[precache_tex++].rname);
|
Com_sprintf(fn, sizeof(fn), "textures/%s.tga", map_surfaces[precache_tex++].rname);
|
||||||
if (!CL_CheckOrDownloadFile(fn))
|
if ( !CL_CheckOrDownloadFile(fn) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -635,7 +635,7 @@ void CL_RequestNextDownload (void)
|
||||||
char fn[MAX_OSPATH];
|
char fn[MAX_OSPATH];
|
||||||
|
|
||||||
Com_sprintf(fn, sizeof(fn), "textures/%s.png", map_surfaces[precache_tex++].rname);
|
Com_sprintf(fn, sizeof(fn), "textures/%s.png", map_surfaces[precache_tex++].rname);
|
||||||
if (!CL_CheckOrDownloadFile(fn))
|
if ( !CL_CheckOrDownloadFile(fn) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -661,7 +661,7 @@ void CL_RequestNextDownload (void)
|
||||||
char fn[MAX_OSPATH];
|
char fn[MAX_OSPATH];
|
||||||
|
|
||||||
Com_sprintf(fn, sizeof(fn), "textures/%s.jpg", map_surfaces[precache_tex++].rname);
|
Com_sprintf(fn, sizeof(fn), "textures/%s.jpg", map_surfaces[precache_tex++].rname);
|
||||||
if (!CL_CheckOrDownloadFile(fn))
|
if ( !CL_CheckOrDownloadFile(fn) )
|
||||||
return; // started a download
|
return; // started a download
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -714,7 +714,7 @@ void CL_DownloadFileName (char *dest, int destlen, const char *fn)
|
||||||
|
|
||||||
|
|
||||||
// Knightmare- store the names of last downloads that failed
|
// Knightmare- store the names of last downloads that failed
|
||||||
#define NUM_FAIL_DLDS 64
|
#define NUM_FAIL_DLDS 512
|
||||||
char lastFailedDownload[NUM_FAIL_DLDS][MAX_OSPATH];
|
char lastFailedDownload[NUM_FAIL_DLDS][MAX_OSPATH];
|
||||||
static unsigned failedDlListIndex;
|
static unsigned failedDlListIndex;
|
||||||
|
|
||||||
|
|
|
@ -1841,8 +1841,7 @@ void CL_AddViewWeapon (player_state_t *ps, player_state_t *ops)
|
||||||
if ( IsThirdPerson() )
|
if ( IsThirdPerson() )
|
||||||
return;
|
return;
|
||||||
// allow the gun to be completely removed
|
// allow the gun to be completely removed
|
||||||
// if (!cl_gun->value)
|
if ( !cl_gun->integer || cl_zoommode->integer )
|
||||||
if (!cl_gun->integer)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// don't draw gun if in wide angle view
|
// don't draw gun if in wide angle view
|
||||||
|
|
|
@ -61,7 +61,7 @@ bandwidth.
|
||||||
|
|
||||||
// Knightmare- store the names of last HTTP downloads from this server that failed
|
// Knightmare- store the names of last HTTP downloads from this server that failed
|
||||||
// This is needed because some player model download failures can cause endless HTTP download loops
|
// This is needed because some player model download failures can cause endless HTTP download loops
|
||||||
#define NUM_FAIL_DLDS 64
|
#define NUM_FAIL_DLDS 256
|
||||||
char lastFailedHTTPDownload[NUM_FAIL_DLDS][MAX_OSPATH];
|
char lastFailedHTTPDownload[NUM_FAIL_DLDS][MAX_OSPATH];
|
||||||
static unsigned failed_HTTP_Dl_ListIndex;
|
static unsigned failed_HTTP_Dl_ListIndex;
|
||||||
|
|
||||||
|
@ -632,8 +632,8 @@ qboolean CL_QueueHTTPDownload (const char *quakePath, qboolean filelistUseGamedi
|
||||||
// Knightmare- don't try again to download via HTTP a file that failed
|
// Knightmare- don't try again to download via HTTP a file that failed
|
||||||
if ( !isFilelist /*&& !needList*/ ) {
|
if ( !isFilelist /*&& !needList*/ ) {
|
||||||
if (CL_CheckHTTPDownloadFailed((char *)quakePath)) {
|
if (CL_CheckHTTPDownloadFailed((char *)quakePath)) {
|
||||||
Com_Printf ("[HTTP] Refusing to download %s again, already in failed HTTP download list.\n", quakePath);
|
// Com_Printf ("[HTTP] Refusing to download %s again, already in failed HTTP download list.\n", quakePath);
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,9 @@ cvar_t *cl_particle_scale;
|
||||||
// whether to adjust fov for wide aspect rattio
|
// whether to adjust fov for wide aspect rattio
|
||||||
cvar_t *cl_widescreen_fov;
|
cvar_t *cl_widescreen_fov;
|
||||||
|
|
||||||
|
// hook to simplify Lazarus zoom feature
|
||||||
|
cvar_t *cl_zoommode;
|
||||||
|
|
||||||
// Psychospaz's chasecam
|
// Psychospaz's chasecam
|
||||||
cvar_t *cg_thirdperson;
|
cvar_t *cg_thirdperson;
|
||||||
cvar_t *cg_thirdperson_angle;
|
cvar_t *cg_thirdperson_angle;
|
||||||
|
@ -2006,6 +2009,10 @@ void CL_InitLocal (void)
|
||||||
cl_widescreen_fov = Cvar_Get ("cl_widescreen_fov", "1", CVAR_ARCHIVE);
|
cl_widescreen_fov = Cvar_Get ("cl_widescreen_fov", "1", CVAR_ARCHIVE);
|
||||||
Cvar_SetDescription ("cl_widescreen_fov", "Enables automatic scaling of FOV for widescreen video modes.");
|
Cvar_SetDescription ("cl_widescreen_fov", "Enables automatic scaling of FOV for widescreen video modes.");
|
||||||
|
|
||||||
|
// hook to simplify Lazarus zoom feature
|
||||||
|
cl_zoommode = Cvar_Get ("cl_zoommode", "0", 0);
|
||||||
|
Cvar_SetDescription ("cl_zoommode", "Disables gun model and crosshair for Lazarus zoom feature.");
|
||||||
|
|
||||||
cl_noskins = Cvar_Get ("cl_noskins", "0", 0);
|
cl_noskins = Cvar_Get ("cl_noskins", "0", 0);
|
||||||
Cvar_SetDescription ("cl_noskins", "Forces all skins to male/grunt when enabled.");
|
Cvar_SetDescription ("cl_noskins", "Forces all skins to male/grunt when enabled.");
|
||||||
// cl_autoskins = Cvar_Get ("cl_autoskins", "0", 0); // unused
|
// cl_autoskins = Cvar_Get ("cl_autoskins", "0", 0); // unused
|
||||||
|
|
|
@ -1769,10 +1769,9 @@ Moved from cl_view.c, what the hell was it doing there?
|
||||||
// Psychospaz's new crosshair code
|
// Psychospaz's new crosshair code
|
||||||
void SCR_DrawCrosshair (void)
|
void SCR_DrawCrosshair (void)
|
||||||
{
|
{
|
||||||
float /*scale,*/ scaledSize, alpha, pulsealpha;
|
float scaledSize, alpha, pulsealpha;
|
||||||
|
|
||||||
// if (!crosshair->value || scr_hidehud)
|
if ( !crosshair->integer || cl_zoommode->integer || scr_hidehud )
|
||||||
if (!crosshair->integer || scr_hidehud)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (crosshair->modified)
|
if (crosshair->modified)
|
||||||
|
@ -1780,13 +1779,13 @@ void SCR_DrawCrosshair (void)
|
||||||
crosshair->modified = false;
|
crosshair->modified = false;
|
||||||
SCR_TouchPics ();
|
SCR_TouchPics ();
|
||||||
|
|
||||||
if ( FS_ModType("dday") ) //dday has no crosshair (FORCED)
|
if ( FS_ModType("dday") ) // D-Day has no crosshair (FORCED)
|
||||||
Cvar_SetValue("crosshair", 0);
|
Cvar_SetValue("crosshair", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (crosshair_scale->modified)
|
if (crosshair_scale->modified)
|
||||||
{
|
{
|
||||||
crosshair_scale->modified=false;
|
crosshair_scale->modified = false;
|
||||||
if (crosshair_scale->value > 15)
|
if (crosshair_scale->value > 15)
|
||||||
Cvar_SetValue("crosshair_scale", 15);
|
Cvar_SetValue("crosshair_scale", 15);
|
||||||
else if (crosshair_scale->value < 0.25)
|
else if (crosshair_scale->value < 0.25)
|
||||||
|
@ -1796,15 +1795,9 @@ void SCR_DrawCrosshair (void)
|
||||||
if (!crosshair_pic[0])
|
if (!crosshair_pic[0])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//scale = crosshair_scale->value * (viddef.width*DIV640);
|
|
||||||
//alpha = 0.75 + 0.25*sin(anglemod(cl.time*0.005));
|
|
||||||
scaledSize = crosshair_scale->value * CROSSHAIR_SIZE;
|
scaledSize = crosshair_scale->value * CROSSHAIR_SIZE;
|
||||||
pulsealpha = crosshair_alpha->value * crosshair_pulse->value;
|
pulsealpha = crosshair_alpha->value * crosshair_pulse->value;
|
||||||
alpha = max(min(crosshair_alpha->value - pulsealpha + pulsealpha*sin(anglemod(cl.time*0.005)), 1.0), 0.0);
|
alpha = max(min(crosshair_alpha->value - pulsealpha + pulsealpha*sin(anglemod(cl.time*0.005)), 1.0), 0.0);
|
||||||
|
|
||||||
// R_DrawScaledPic (scr_vrect.x + (int)(((float)scr_vrect.width - scale*(float)crosshair_width)*0.5), // x
|
|
||||||
// scr_vrect.y + (int)(((float)scr_vrect.height - scale*(float)crosshair_height)*0.5), // y
|
|
||||||
// scale, alpha, crosshair_pic);
|
|
||||||
SCR_DrawPic ( ((float)SCREEN_WIDTH - scaledSize)*0.5, ((float)SCREEN_HEIGHT - scaledSize)*0.5,
|
SCR_DrawPic ( ((float)SCREEN_WIDTH - scaledSize)*0.5, ((float)SCREEN_HEIGHT - scaledSize)*0.5,
|
||||||
scaledSize, scaledSize, ALIGN_CENTER, false, crosshair_pic, alpha);
|
scaledSize, scaledSize, ALIGN_CENTER, false, crosshair_pic, alpha);
|
||||||
}
|
}
|
||||||
|
|
|
@ -412,10 +412,13 @@ extern cvar_t *cl_particle_scale;
|
||||||
// whether to adjust fov for wide aspect rattio
|
// whether to adjust fov for wide aspect rattio
|
||||||
extern cvar_t *cl_widescreen_fov;
|
extern cvar_t *cl_widescreen_fov;
|
||||||
|
|
||||||
extern cvar_t *scr_conalpha; // Psychospaz's transparent console
|
// hook to simplify Lazarus zoom feature
|
||||||
extern cvar_t *scr_newconback; // whether to use new console background
|
extern cvar_t *cl_zoommode;
|
||||||
extern cvar_t *scr_oldconbar; // whether to draw bottom bar on old console
|
|
||||||
//extern cvar_t *scr_conheight; // how far the console drops down
|
extern cvar_t *scr_conalpha; // Psychospaz's transparent console
|
||||||
|
extern cvar_t *scr_newconback; // whether to use new console background
|
||||||
|
extern cvar_t *scr_oldconbar; // whether to draw bottom bar on old console
|
||||||
|
//extern cvar_t *scr_conheight; // how far the console drops down
|
||||||
|
|
||||||
// Psychospaz's chasecam
|
// Psychospaz's chasecam
|
||||||
extern cvar_t *cg_thirdperson;
|
extern cvar_t *cg_thirdperson;
|
||||||
|
|
|
@ -1685,20 +1685,25 @@ void SetLazarusCrosshair (edict_t *ent)
|
||||||
if (ent->client->zoomed || ent->client->zooming)
|
if (ent->client->zoomed || ent->client->zooming)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gi.cvar_forceset("lazarus_crosshair", va("%d",(int)(crosshair->value)));
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
gi.cvar_forceset("lazarus_cl_gun", va("%d",(int)(cl_gun->value)));
|
gi.cvar_forceset("lazarus_crosshair", va("%d", (int)(crosshair->value)));
|
||||||
|
gi.cvar_forceset("lazarus_cl_gun", va("%d", (int)(cl_gun->value)));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetSensitivities (edict_t *ent, qboolean reset)
|
void SetSensitivities (edict_t *ent, qboolean reset)
|
||||||
{
|
{
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
char string[512];
|
char string[512];
|
||||||
|
#endif
|
||||||
if (deathmatch->value || coop->value) return;
|
if (deathmatch->value || coop->value) return;
|
||||||
if (!ent->inuse) return;
|
if (!ent->inuse) return;
|
||||||
if (!ent->client) return;
|
if (!ent->client) return;
|
||||||
if (reset)
|
if (reset)
|
||||||
{
|
{
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
#ifdef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
|
stuffcmd (ent, "cl_zoommode 0\n");
|
||||||
|
#else
|
||||||
gi.cvar_set ("m_pitch", va("%f", lazarus_pitch->value));
|
gi.cvar_set ("m_pitch", va("%f", lazarus_pitch->value));
|
||||||
gi.cvar_set ("m_yaw", va("%f", lazarus_yaw->value));
|
gi.cvar_set ("m_yaw", va("%f", lazarus_yaw->value));
|
||||||
gi.cvar_set ("joy_pitchsensitivity", va("%f", lazarus_joyp->value));
|
gi.cvar_set ("joy_pitchsensitivity", va("%f", lazarus_joyp->value));
|
||||||
|
@ -1707,50 +1712,51 @@ void SetSensitivities (edict_t *ent, qboolean reset)
|
||||||
// m_yaw->value = lazarus_yaw->value;
|
// m_yaw->value = lazarus_yaw->value;
|
||||||
// joy_pitchsensitivity->value = lazarus_joyp->value;
|
// joy_pitchsensitivity->value = lazarus_joyp->value;
|
||||||
// joy_yawsensitivity->value = lazarus_joyy->value;
|
// joy_yawsensitivity->value = lazarus_joyy->value;
|
||||||
#endif
|
|
||||||
if (crosshair->value != lazarus_crosshair->value)
|
if (crosshair->value != lazarus_crosshair->value)
|
||||||
{
|
{
|
||||||
Com_sprintf(string, sizeof(string), "crosshair %i\n",atoi(lazarus_crosshair->string));
|
Com_sprintf (string, sizeof(string), "crosshair %i\n", atoi(lazarus_crosshair->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
}
|
}
|
||||||
if (cl_gun->value != lazarus_cl_gun->value)
|
if (cl_gun->value != lazarus_cl_gun->value)
|
||||||
{
|
{
|
||||||
Com_sprintf(string, sizeof(string), "cl_gun %i\n",atoi(lazarus_cl_gun->string));
|
Com_sprintf (string, sizeof(string), "cl_gun %i\n", atoi(lazarus_cl_gun->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
ent->client->pers.hand = hand->value;
|
ent->client->pers.hand = hand->value;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#ifdef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
|
stuffcmd (ent, "cl_zoommode 1\n");
|
||||||
|
#else
|
||||||
float ratio;
|
float ratio;
|
||||||
|
|
||||||
// save in lazarus_crosshair
|
// save in lazarus_crosshair
|
||||||
Com_sprintf(string, sizeof(string), "lazarus_crosshair %i\n",atoi(crosshair->string));
|
Com_sprintf (string, sizeof(string), "lazarus_crosshair %i\n", atoi(crosshair->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
Com_sprintf(string, sizeof(string), "crosshair 0");
|
Com_sprintf (string, sizeof(string), "crosshair 0\n");
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
|
|
||||||
Com_sprintf(string, sizeof(string), "lazarus_cl_gun %i\n",atoi(cl_gun->string));
|
Com_sprintf (string, sizeof(string), "lazarus_cl_gun %i\n", atoi(cl_gun->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
Com_sprintf(string, sizeof(string), "cl_gun 0");
|
Com_sprintf (string, sizeof(string), "cl_gun 0\n");
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
|
|
||||||
if (!ent->client->sensitivities_init)
|
if (!ent->client->sensitivities_init)
|
||||||
{
|
{
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
|
||||||
ent->client->m_pitch = m_pitch->value;
|
ent->client->m_pitch = m_pitch->value;
|
||||||
ent->client->m_yaw = m_yaw->value;
|
ent->client->m_yaw = m_yaw->value;
|
||||||
ent->client->joy_pitchsensitivity = joy_pitchsensitivity->value;
|
ent->client->joy_pitchsensitivity = joy_pitchsensitivity->value;
|
||||||
ent->client->joy_yawsensitivity = joy_yawsensitivity->value;
|
ent->client->joy_yawsensitivity = joy_yawsensitivity->value;
|
||||||
#endif
|
|
||||||
ent->client->sensitivities_init = true;
|
ent->client->sensitivities_init = true;
|
||||||
}
|
}
|
||||||
if (ent->client->ps.fov >= ent->client->original_fov)
|
if (ent->client->ps.fov >= ent->client->original_fov)
|
||||||
ratio = 1.;
|
ratio = 1.0f;
|
||||||
else
|
else
|
||||||
ratio = ent->client->ps.fov / ent->client->original_fov;
|
ratio = ent->client->ps.fov / ent->client->original_fov;
|
||||||
|
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
|
||||||
gi.cvar_set ("m_pitch", va("%f", ent->client->m_pitch * ratio));
|
gi.cvar_set ("m_pitch", va("%f", ent->client->m_pitch * ratio));
|
||||||
gi.cvar_set ("m_yaw", va("%f", ent->client->m_yaw * ratio));
|
gi.cvar_set ("m_yaw", va("%f", ent->client->m_yaw * ratio));
|
||||||
gi.cvar_set ("joy_pitchsensitivity", va("%f", ent->client->joy_pitchsensitivity * ratio));
|
gi.cvar_set ("joy_pitchsensitivity", va("%f", ent->client->joy_pitchsensitivity * ratio));
|
||||||
|
@ -1762,9 +1768,9 @@ void SetSensitivities (edict_t *ent, qboolean reset)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
||||||
Com_sprintf(string, sizeof(string), "m_pitch %g;m_yaw %g;joy_pitchsensitivity %g;joy_yawsensitivity %g\n",
|
Com_sprintf (string, sizeof(string), "m_pitch %g;m_yaw %g;joy_pitchsensitivity %g;joy_yawsensitivity %g\n",
|
||||||
m_pitch->value,m_yaw->value,joy_pitchsensitivity->value,joy_yawsensitivity->value);
|
m_pitch->value, m_yaw->value, joy_pitchsensitivity->value, joy_yawsensitivity->value);
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2116,7 +2122,6 @@ void ClientCommand (edict_t *ent)
|
||||||
else if (Q_stricmp (cmd, "entcount") == 0)
|
else if (Q_stricmp (cmd, "entcount") == 0)
|
||||||
Cmd_EntCount_f(ent);
|
Cmd_EntCount_f(ent);
|
||||||
|
|
||||||
|
|
||||||
// alternate attack mode
|
// alternate attack mode
|
||||||
/*else if (!Q_stricmp(cmd,"attack2_off"))
|
/*else if (!Q_stricmp(cmd,"attack2_off"))
|
||||||
Cmd_attack2_f(ent,false);
|
Cmd_attack2_f(ent,false);
|
||||||
|
@ -2128,9 +2133,12 @@ void ClientCommand (edict_t *ent)
|
||||||
{
|
{
|
||||||
if (!deathmatch->value && !coop->value && !ent->client->chasetoggle)
|
if (!deathmatch->value && !coop->value && !ent->client->chasetoggle)
|
||||||
{
|
{
|
||||||
if (ent->client->ps.fov > 5) {
|
if (ent->client->ps.fov > 5)
|
||||||
|
{
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
||||||
ent->client->zooming = 1;
|
ent->client->zooming = 1;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
|
@ -2141,9 +2149,12 @@ void ClientCommand (edict_t *ent)
|
||||||
{
|
{
|
||||||
if (!deathmatch->value && !coop->value && !ent->client->chasetoggle)
|
if (!deathmatch->value && !coop->value && !ent->client->chasetoggle)
|
||||||
{
|
{
|
||||||
if (ent->client->ps.fov < ent->client->original_fov) {
|
if (ent->client->ps.fov < ent->client->original_fov)
|
||||||
|
{
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
||||||
ent->client->zooming = -1;
|
ent->client->zooming = -1;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
|
@ -2160,17 +2171,19 @@ void ClientCommand (edict_t *ent)
|
||||||
ent->client->ps.fov = ent->client->original_fov;
|
ent->client->ps.fov = ent->client->original_fov;
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
else if (!ent->client->zoomed && !ent->client->zooming)
|
else if (!ent->client->zoomed && !ent->client->zooming)
|
||||||
{
|
{
|
||||||
ent->client->ps.fov = zoomsnap->value;
|
ent->client->ps.fov = zoomsnap->value;
|
||||||
ent->client->pers.hand = 2;
|
ent->client->pers.hand = 2;
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2182,7 +2195,7 @@ void ClientCommand (edict_t *ent)
|
||||||
ent->client->ps.fov = ent->client->original_fov;
|
ent->client->ps.fov = ent->client->original_fov;
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2194,11 +2207,13 @@ void ClientCommand (edict_t *ent)
|
||||||
{
|
{
|
||||||
ent->client->ps.fov = zoomsnap->value;
|
ent->client->ps.fov = zoomsnap->value;
|
||||||
ent->client->pers.hand = 2;
|
ent->client->pers.hand = 2;
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2211,11 +2226,11 @@ void ClientCommand (edict_t *ent)
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
if (ent->client->ps.fov == ent->client->original_fov) {
|
if (ent->client->ps.fov == ent->client->original_fov) {
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gi.cvar_forceset("zoomsnap",va("%f",ent->client->ps.fov));
|
gi.cvar_forceset("zoomsnap", va("%f", ent->client->ps.fov));
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2228,11 +2243,11 @@ void ClientCommand (edict_t *ent)
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
if (ent->client->ps.fov == ent->client->original_fov) {
|
if (ent->client->ps.fov == ent->client->original_fov) {
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gi.cvar_forceset("zoomsnap",va("%f",ent->client->ps.fov));
|
gi.cvar_forceset("zoomsnap", va("%f", ent->client->ps.fov));
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -786,7 +786,7 @@ extern cvar_t *cl_thirdperson; // Knightmare added
|
||||||
extern cvar_t *corpse_fade;
|
extern cvar_t *corpse_fade;
|
||||||
extern cvar_t *corpse_fadetime;
|
extern cvar_t *corpse_fadetime;
|
||||||
extern cvar_t *crosshair;
|
extern cvar_t *crosshair;
|
||||||
extern cvar_t *crossh;
|
//extern cvar_t *crossh;
|
||||||
extern cvar_t *developer;
|
extern cvar_t *developer;
|
||||||
extern cvar_t *footstep_sounds;
|
extern cvar_t *footstep_sounds;
|
||||||
extern cvar_t *fov;
|
extern cvar_t *fov;
|
||||||
|
|
|
@ -162,8 +162,8 @@ void ShutdownGame (void)
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
||||||
gi.cvar_forceset("m_pitch", va("%f",lazarus_pitch->value));
|
gi.cvar_forceset("m_pitch", va("%f",lazarus_pitch->value));
|
||||||
#endif
|
#endif
|
||||||
//gi.cvar_forceset("cd_loopcount", va("%d",lazarus_cd_loop->value));
|
// gi.cvar_forceset("cd_loopcount", va("%d", lazarus_cd_loop->value));
|
||||||
//gi.cvar_forceset("gl_clear", va("%d", lazarus_gl_clear->value));
|
// gi.cvar_forceset("gl_clear", va("%d", lazarus_gl_clear->value));
|
||||||
}
|
}
|
||||||
// Lazarus: Turn off fog if it's on
|
// Lazarus: Turn off fog if it's on
|
||||||
if (!dedicated->value) {
|
if (!dedicated->value) {
|
||||||
|
|
|
@ -445,35 +445,37 @@ void InitGame (void)
|
||||||
lazarus_cl_gun = gi.cvar("lazarus_cl_gun", "0", 0);
|
lazarus_cl_gun = gi.cvar("lazarus_cl_gun", "0", 0);
|
||||||
lazarus_crosshair = gi.cvar("lazarus_crosshair", "0", 0);
|
lazarus_crosshair = gi.cvar("lazarus_crosshair", "0", 0);
|
||||||
|
|
||||||
/*if(lazarus_gl_clear->value)
|
/*if (lazarus_gl_clear->value)
|
||||||
gi.cvar_forceset("gl_clear", va("%d",lazarus_gl_clear->value));
|
gi.cvar_forceset("gl_clear", va("%d", lazarus_gl_clear->value));
|
||||||
else
|
else
|
||||||
gi.cvar_forceset("lazarus_gl_clear", va("%d",gl_clear->value));*/
|
gi.cvar_forceset("lazarus_gl_clear", va("%d", gl_clear->value));*/
|
||||||
|
|
||||||
if(!deathmatch->value && !coop->value)
|
if (!deathmatch->value && !coop->value)
|
||||||
{
|
{
|
||||||
/*if(lazarus_pitch->value) {
|
/*if (lazarus_pitch->value) {
|
||||||
gi.cvar_forceset("cd_loopcount", va("%d",(int)(lazarus_cd_loop->value)));
|
gi.cvar_forceset("cd_loopcount", va("%d", (int)(lazarus_cd_loop->value)));
|
||||||
gi.cvar_forceset("m_pitch", va("%f",lazarus_pitch->value));
|
gi.cvar_forceset("m_pitch", va("%f", lazarus_pitch->value));
|
||||||
gi.cvar_forceset("m_yaw", va("%f",lazarus_yaw->value));
|
gi.cvar_forceset("m_yaw", va("%f", lazarus_yaw->value));
|
||||||
gi.cvar_forceset("cl_gun", va("%d",(int)(lazarus_cl_gun->value)));
|
gi.cvar_forceset("cl_gun", va("%d", (int)(lazarus_cl_gun->value)));
|
||||||
gi.cvar_forceset("crosshair", va("%d",(int)(lazarus_crosshair->value)));
|
gi.cvar_forceset("crosshair", va("%d", (int)(lazarus_crosshair->value)));
|
||||||
} else {*/
|
}
|
||||||
gi.cvar_forceset("lazarus_cd_loop", va("%d",(int)(cd_loopcount->value)));
|
else
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
{*/
|
||||||
gi.cvar_forceset("lazarus_pitch", va("%f",m_pitch->value));
|
gi.cvar_forceset("lazarus_cd_loop", va("%d", (int)(cd_loopcount->value)));
|
||||||
gi.cvar_forceset("lazarus_yaw", va("%f",m_yaw->value));
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
gi.cvar_forceset("lazarus_joyp", va("%f",joy_pitchsensitivity->value));
|
gi.cvar_forceset("lazarus_pitch", va("%f", m_pitch->value));
|
||||||
gi.cvar_forceset("lazarus_joyy", va("%f",joy_yawsensitivity->value));
|
gi.cvar_forceset("lazarus_yaw", va("%f", m_yaw->value));
|
||||||
|
gi.cvar_forceset("lazarus_joyp", va("%f", joy_pitchsensitivity->value));
|
||||||
|
gi.cvar_forceset("lazarus_joyy", va("%f", joy_yawsensitivity->value));
|
||||||
|
gi.cvar_forceset("lazarus_cl_gun", va("%d", (int)(cl_gun->value)));
|
||||||
|
gi.cvar_forceset("lazarus_crosshair", va("%d", (int)(crosshair->value)));
|
||||||
#endif
|
#endif
|
||||||
gi.cvar_forceset("lazarus_cl_gun", va("%d",(int)(cl_gun->value)));
|
|
||||||
gi.cvar_forceset("lazarus_crosshair", va("%d",(int)(crosshair->value)));
|
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
tpp = gi.cvar ("tpp", "0", CVAR_ARCHIVE);
|
tpp = gi.cvar ("tpp", "0", CVAR_ARCHIVE);
|
||||||
tpp_auto = gi.cvar ("tpp_auto", "1", 0);
|
tpp_auto = gi.cvar ("tpp_auto", "1", 0);
|
||||||
crossh = gi.cvar ("crossh", "1", 0);
|
// crossh = gi.cvar ("crossh", "1", 0);
|
||||||
allow_download = gi.cvar("allow_download", "0", 0);
|
allow_download = gi.cvar("allow_download", "0", 0);
|
||||||
|
|
||||||
g_showlogic = gi.cvar("g_showlogic", "0", 0); // Knightmare added
|
g_showlogic = gi.cvar("g_showlogic", "0", 0); // Knightmare added
|
||||||
|
|
|
@ -515,7 +515,11 @@ void use_target_changelevel (edict_t *self, edict_t *other, edict_t *activator)
|
||||||
if ((self->spawnflags & 4) && activator->client && !deathmatch->value && !coop->value)
|
if ((self->spawnflags & 4) && activator->client && !deathmatch->value && !coop->value)
|
||||||
{
|
{
|
||||||
nostatus = 1;
|
nostatus = 1;
|
||||||
stuffcmd(activator,"cl_gun 0;crosshair 0\n");
|
#ifdef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
|
stuffcmd (activator, "cl_zoommode 1\n");
|
||||||
|
#else
|
||||||
|
stuffcmd (activator, "cl_gun 0;crosshair 0\n");
|
||||||
|
#endif
|
||||||
activator->client->pers.hand = 2;
|
activator->client->pers.hand = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -970,6 +970,8 @@ void MakronSpawn (edict_t *self)
|
||||||
vec3_t vec;
|
vec3_t vec;
|
||||||
edict_t *player;
|
edict_t *player;
|
||||||
|
|
||||||
|
self->classname = "monster_makron"; // Knightmare- set the right classname
|
||||||
|
|
||||||
SP_monster_makron_put (self);
|
SP_monster_makron_put (self);
|
||||||
|
|
||||||
// Knightmare- gross hack for map6 of COS3- don't jump
|
// Knightmare- gross hack for map6 of COS3- don't jump
|
||||||
|
|
|
@ -853,8 +853,8 @@ void tank_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage,
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
if (!(self->fogclip & 2)) //custom bloodtype flag check
|
if (!(self->fogclip & 2)) // custom bloodtype flag check
|
||||||
self->blood_type = 3; //sparks and blood
|
self->blood_type = 3; // sparks and blood
|
||||||
|
|
||||||
self->monsterinfo.power_armor_type = POWER_ARMOR_NONE;
|
self->monsterinfo.power_armor_type = POWER_ARMOR_NONE;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
cvar_t *tpp;
|
cvar_t *tpp;
|
||||||
cvar_t *tpp_auto;
|
cvar_t *tpp_auto;
|
||||||
cvar_t *crossh;
|
//cvar_t *crossh;
|
||||||
|
|
||||||
void ChasecamTrack (edict_t *ent);
|
void ChasecamTrack (edict_t *ent);
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ void ChasecamStart (edict_t *ent)
|
||||||
ent->client->chasecam = chasecam;
|
ent->client->chasecam = chasecam;
|
||||||
ent->client->oldplayer = G_Spawn();
|
ent->client->oldplayer = G_Spawn();
|
||||||
CheckChasecam_Viewent(ent);
|
CheckChasecam_Viewent(ent);
|
||||||
//MakeFakeCrosshair(ent);
|
// MakeFakeCrosshair (ent);
|
||||||
|
|
||||||
// remove reflection of real player, if any
|
// remove reflection of real player, if any
|
||||||
DeleteReflection (ent, -1);
|
DeleteReflection (ent, -1);
|
||||||
|
@ -122,7 +122,7 @@ void ChasecamRemove (edict_t *ent, int opt)
|
||||||
ent->s.modelindex = ent->client->oldplayer->s.modelindex;
|
ent->s.modelindex = ent->client->oldplayer->s.modelindex;
|
||||||
ent->svflags &= ~SVF_NOCLIENT;
|
ent->svflags &= ~SVF_NOCLIENT;
|
||||||
|
|
||||||
//DestroyFakeCrosshair (ent);
|
// DestroyFakeCrosshair (ent);
|
||||||
|
|
||||||
if (opt == OPTION_BACKGROUND)
|
if (opt == OPTION_BACKGROUND)
|
||||||
{
|
{
|
||||||
|
@ -302,7 +302,7 @@ void ChasecamTrack (edict_t *ent)
|
||||||
VectorCopy (ent->s.origin, ent->movedir);
|
VectorCopy (ent->s.origin, ent->movedir);
|
||||||
/* MUST LINK SINCE WE CHANGED THE ORIGIN! */
|
/* MUST LINK SINCE WE CHANGED THE ORIGIN! */
|
||||||
gi.linkentity (ent);
|
gi.linkentity (ent);
|
||||||
//UpdateFakeCrosshair (ent->owner);
|
// UpdateFakeCrosshair (ent->owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Cmd_Chasecam_Toggle (edict_t *ent)
|
void Cmd_Chasecam_Toggle (edict_t *ent)
|
||||||
|
|
|
@ -775,10 +775,10 @@ void player_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damag
|
||||||
|
|
||||||
self->client->pers.spawn_landmark = false; // paranoia check
|
self->client->pers.spawn_landmark = false; // paranoia check
|
||||||
self->client->pers.spawn_levelchange = false;
|
self->client->pers.spawn_levelchange = false;
|
||||||
SetLazarusCrosshair(self); //backup crosshair
|
SetLazarusCrosshair (self); // backup crosshair
|
||||||
self->client->zooming = 0;
|
self->client->zooming = 0;
|
||||||
self->client->zoomed = false;
|
self->client->zoomed = false;
|
||||||
SetSensitivities(self,true);
|
SetSensitivities (self, true);
|
||||||
|
|
||||||
if (self->client->spycam)
|
if (self->client->spycam)
|
||||||
camera_off(self);
|
camera_off(self);
|
||||||
|
@ -2155,8 +2155,8 @@ void ClientBegin (edict_t *ent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DWH
|
// DWH
|
||||||
SetLazarusCrosshair(ent); //backup crosshair
|
SetLazarusCrosshair (ent); // backup crosshair
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
|
|
||||||
if (game.maxclients == 1)
|
if (game.maxclients == 1)
|
||||||
{
|
{
|
||||||
|
@ -2379,10 +2379,10 @@ void ClientDisconnect (edict_t *ent)
|
||||||
// end tpp
|
// end tpp
|
||||||
|
|
||||||
// DWH
|
// DWH
|
||||||
SetLazarusCrosshair(ent); //backup crosshair
|
SetLazarusCrosshair (ent); // backup crosshair
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
// end DWH
|
// end DWH
|
||||||
|
|
||||||
if (ent->client->textdisplay)
|
if (ent->client->textdisplay)
|
||||||
|
|
|
@ -1539,20 +1539,25 @@ void SetLazarusCrosshair (edict_t *ent)
|
||||||
if (ent->client->zoomed || ent->client->zooming)
|
if (ent->client->zoomed || ent->client->zooming)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gi.cvar_forceset("lazarus_crosshair", va("%d",(int)(crosshair->value)));
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
gi.cvar_forceset("lazarus_cl_gun", va("%d",(int)(cl_gun->value)));
|
gi.cvar_forceset("lazarus_crosshair", va("%d", (int)(crosshair->value)));
|
||||||
|
gi.cvar_forceset("lazarus_cl_gun", va("%d", (int)(cl_gun->value)));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetSensitivities (edict_t *ent,qboolean reset)
|
void SetSensitivities (edict_t *ent, qboolean reset)
|
||||||
{
|
{
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
char string[512];
|
char string[512];
|
||||||
|
#endif
|
||||||
if (deathmatch->value || coop->value) return;
|
if (deathmatch->value || coop->value) return;
|
||||||
if (!ent->inuse) return;
|
if (!ent->inuse) return;
|
||||||
if (!ent->client) return;
|
if (!ent->client) return;
|
||||||
if (reset)
|
if (reset)
|
||||||
{
|
{
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
#ifdef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
|
stuffcmd (ent, "cl_zoommode 0\n");
|
||||||
|
#else
|
||||||
gi.cvar_set ("m_pitch", va("%f", lazarus_pitch->value));
|
gi.cvar_set ("m_pitch", va("%f", lazarus_pitch->value));
|
||||||
gi.cvar_set ("m_yaw", va("%f", lazarus_yaw->value));
|
gi.cvar_set ("m_yaw", va("%f", lazarus_yaw->value));
|
||||||
gi.cvar_set ("joy_pitchsensitivity", va("%f", lazarus_joyp->value));
|
gi.cvar_set ("joy_pitchsensitivity", va("%f", lazarus_joyp->value));
|
||||||
|
@ -1561,50 +1566,51 @@ void SetSensitivities (edict_t *ent,qboolean reset)
|
||||||
// m_yaw->value = lazarus_yaw->value;
|
// m_yaw->value = lazarus_yaw->value;
|
||||||
// joy_pitchsensitivity->value = lazarus_joyp->value;
|
// joy_pitchsensitivity->value = lazarus_joyp->value;
|
||||||
// joy_yawsensitivity->value = lazarus_joyy->value;
|
// joy_yawsensitivity->value = lazarus_joyy->value;
|
||||||
#endif
|
|
||||||
if (crosshair->value != lazarus_crosshair->value)
|
if (crosshair->value != lazarus_crosshair->value)
|
||||||
{
|
{
|
||||||
Com_sprintf(string, sizeof(string), "set crosshair %0d\n",(int)(lazarus_crosshair->value));
|
Com_sprintf (string, sizeof(string), "crosshair %i\n", atoi(lazarus_crosshair->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
}
|
}
|
||||||
if (cl_gun->value != lazarus_cl_gun->value)
|
if (cl_gun->value != lazarus_cl_gun->value)
|
||||||
{
|
{
|
||||||
Com_sprintf(string, sizeof(string), "cl_gun %i\n",atoi(lazarus_cl_gun->string));
|
Com_sprintf (string, sizeof(string), "cl_gun %i\n", atoi(lazarus_cl_gun->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
ent->client->pers.hand = hand->value;
|
ent->client->pers.hand = hand->value;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#ifdef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
|
stuffcmd (ent, "cl_zoommode 1\n");
|
||||||
|
#else
|
||||||
float ratio;
|
float ratio;
|
||||||
|
|
||||||
//save in lazarus_crosshair
|
// save in lazarus_crosshair
|
||||||
Com_sprintf(string, sizeof(string), "lazarus_crosshair %i\n",atoi(crosshair->string));
|
Com_sprintf (string, sizeof(string), "lazarus_crosshair %i\n", atoi(crosshair->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
Com_sprintf(string, sizeof(string), "crosshair 0");
|
Com_sprintf (string, sizeof(string), "crosshair 0\n");
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
|
|
||||||
Com_sprintf(string, sizeof(string), "lazarus_cl_gun %i\n",atoi(cl_gun->string));
|
Com_sprintf (string, sizeof(string), "lazarus_cl_gun %i\n", atoi(cl_gun->string));
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
Com_sprintf(string, sizeof(string), "cl_gun 0");
|
Com_sprintf (string, sizeof(string), "cl_gun 0\n");
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
|
|
||||||
if (!ent->client->sensitivities_init)
|
if (!ent->client->sensitivities_init)
|
||||||
{
|
{
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
|
||||||
ent->client->m_pitch = m_pitch->value;
|
ent->client->m_pitch = m_pitch->value;
|
||||||
ent->client->m_yaw = m_yaw->value;
|
ent->client->m_yaw = m_yaw->value;
|
||||||
ent->client->joy_pitchsensitivity = joy_pitchsensitivity->value;
|
ent->client->joy_pitchsensitivity = joy_pitchsensitivity->value;
|
||||||
ent->client->joy_yawsensitivity = joy_yawsensitivity->value;
|
ent->client->joy_yawsensitivity = joy_yawsensitivity->value;
|
||||||
#endif
|
|
||||||
ent->client->sensitivities_init = true;
|
ent->client->sensitivities_init = true;
|
||||||
}
|
}
|
||||||
if (ent->client->ps.fov >= ent->client->original_fov)
|
if (ent->client->ps.fov >= ent->client->original_fov)
|
||||||
ratio = 1.;
|
ratio = 1.0f;
|
||||||
else
|
else
|
||||||
ratio = ent->client->ps.fov / ent->client->original_fov;
|
ratio = ent->client->ps.fov / ent->client->original_fov;
|
||||||
|
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
|
||||||
gi.cvar_set ("m_pitch", va("%f", ent->client->m_pitch * ratio));
|
gi.cvar_set ("m_pitch", va("%f", ent->client->m_pitch * ratio));
|
||||||
gi.cvar_set ("m_yaw", va("%f", ent->client->m_yaw * ratio));
|
gi.cvar_set ("m_yaw", va("%f", ent->client->m_yaw * ratio));
|
||||||
gi.cvar_set ("joy_pitchsensitivity", va("%f", ent->client->joy_pitchsensitivity * ratio));
|
gi.cvar_set ("joy_pitchsensitivity", va("%f", ent->client->joy_pitchsensitivity * ratio));
|
||||||
|
@ -1615,10 +1621,10 @@ void SetSensitivities (edict_t *ent,qboolean reset)
|
||||||
// joy_yawsensitivity->value = ent->client->joy_yawsensitivity * ratio;
|
// joy_yawsensitivity->value = ent->client->joy_yawsensitivity * ratio;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
Com_sprintf(string, sizeof(string), "m_pitch %g;m_yaw %g;joy_pitchsensitivity %g;joy_yawsensitivity %g\n",
|
Com_sprintf (string, sizeof(string), "m_pitch %g;m_yaw %g;joy_pitchsensitivity %g;joy_yawsensitivity %g\n",
|
||||||
m_pitch->value,m_yaw->value,joy_pitchsensitivity->value,joy_yawsensitivity->value);
|
m_pitch->value, m_yaw->value, joy_pitchsensitivity->value, joy_yawsensitivity->value);
|
||||||
stuffcmd(ent,string);
|
stuffcmd (ent, string);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1952,8 +1958,10 @@ void ClientCommand (edict_t *ent)
|
||||||
{
|
{
|
||||||
if (ent->client->ps.fov > 5)
|
if (ent->client->ps.fov > 5)
|
||||||
{
|
{
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
||||||
ent->client->zooming = 1;
|
ent->client->zooming = 1;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
|
@ -1966,8 +1974,10 @@ void ClientCommand (edict_t *ent)
|
||||||
{
|
{
|
||||||
if (ent->client->ps.fov < ent->client->original_fov)
|
if (ent->client->ps.fov < ent->client->original_fov)
|
||||||
{
|
{
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
ent->client->frame_zoomrate = zoomrate->value * ent->client->secs_per_frame;
|
||||||
ent->client->zooming = -1;
|
ent->client->zooming = -1;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
|
@ -1987,17 +1997,19 @@ void ClientCommand (edict_t *ent)
|
||||||
ent->client->ps.fov = ent->client->original_fov;
|
ent->client->ps.fov = ent->client->original_fov;
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
else if (!ent->client->zoomed && !ent->client->zooming)
|
else if (!ent->client->zoomed && !ent->client->zooming)
|
||||||
{
|
{
|
||||||
ent->client->ps.fov = zoomsnap->value;
|
ent->client->ps.fov = zoomsnap->value;
|
||||||
ent->client->pers.hand = 2;
|
ent->client->pers.hand = 2;
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2010,7 +2022,7 @@ void ClientCommand (edict_t *ent)
|
||||||
ent->client->ps.fov = ent->client->original_fov;
|
ent->client->ps.fov = ent->client->original_fov;
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2022,11 +2034,13 @@ void ClientCommand (edict_t *ent)
|
||||||
{
|
{
|
||||||
ent->client->ps.fov = zoomsnap->value;
|
ent->client->ps.fov = zoomsnap->value;
|
||||||
ent->client->pers.hand = 2;
|
ent->client->pers.hand = 2;
|
||||||
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
if (cl_gun->value)
|
if (cl_gun->value)
|
||||||
stuffcmd(ent,"cl_gun 0\n");
|
stuffcmd (ent, "cl_gun 0\n");
|
||||||
|
#endif
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = true;
|
ent->client->zoomed = true;
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2040,12 +2054,12 @@ void ClientCommand (edict_t *ent)
|
||||||
if (ent->client->ps.fov == ent->client->original_fov)
|
if (ent->client->ps.fov == ent->client->original_fov)
|
||||||
{
|
{
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gi.cvar_forceset("zoomsnap",va("%f",ent->client->ps.fov));
|
gi.cvar_forceset("zoomsnap",va("%f",ent->client->ps.fov));
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2060,12 +2074,12 @@ void ClientCommand (edict_t *ent)
|
||||||
if (ent->client->ps.fov == ent->client->original_fov)
|
if (ent->client->ps.fov == ent->client->original_fov)
|
||||||
{
|
{
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gi.cvar_forceset("zoomsnap",va("%f",ent->client->ps.fov));
|
gi.cvar_forceset("zoomsnap",va("%f",ent->client->ps.fov));
|
||||||
SetSensitivities(ent,false);
|
SetSensitivities (ent, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1040,7 +1040,7 @@ extern cvar_t *cl_thirdperson; // Knightmare added
|
||||||
extern cvar_t *corpse_fade;
|
extern cvar_t *corpse_fade;
|
||||||
extern cvar_t *corpse_fadetime;
|
extern cvar_t *corpse_fadetime;
|
||||||
extern cvar_t *crosshair;
|
extern cvar_t *crosshair;
|
||||||
extern cvar_t *crossh;
|
//extern cvar_t *crossh;
|
||||||
extern cvar_t *developer;
|
extern cvar_t *developer;
|
||||||
extern cvar_t *fmod_nomusic;
|
extern cvar_t *fmod_nomusic;
|
||||||
extern cvar_t *footstep_sounds;
|
extern cvar_t *footstep_sounds;
|
||||||
|
|
|
@ -72,7 +72,7 @@ cvar_t *cl_thirdperson; // Knightmare added
|
||||||
cvar_t *corpse_fade;
|
cvar_t *corpse_fade;
|
||||||
cvar_t *corpse_fadetime;
|
cvar_t *corpse_fadetime;
|
||||||
cvar_t *crosshair;
|
cvar_t *crosshair;
|
||||||
cvar_t *crossh;
|
//cvar_t *crossh;
|
||||||
cvar_t *developer;
|
cvar_t *developer;
|
||||||
cvar_t *fmod_nomusic;
|
cvar_t *fmod_nomusic;
|
||||||
cvar_t *footstep_sounds;
|
cvar_t *footstep_sounds;
|
||||||
|
@ -149,8 +149,8 @@ void ShutdownGame (void)
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
||||||
gi.cvar_forceset("m_pitch", va("%f",lazarus_pitch->value));
|
gi.cvar_forceset("m_pitch", va("%f",lazarus_pitch->value));
|
||||||
#endif
|
#endif
|
||||||
//gi.cvar_forceset("cd_loopcount", va("%d",lazarus_cd_loop->value));
|
// gi.cvar_forceset("cd_loopcount", va("%d", lazarus_cd_loop->value));
|
||||||
//gi.cvar_forceset("gl_clear", va("%d", lazarus_gl_clear->value));
|
// gi.cvar_forceset("gl_clear", va("%d", lazarus_gl_clear->value));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lazarus: Turn off fog if it's on
|
// Lazarus: Turn off fog if it's on
|
||||||
|
|
|
@ -524,39 +524,37 @@ void InitGame (void)
|
||||||
lazarus_cl_gun = gi.cvar("lazarus_cl_gun", "0", 0);
|
lazarus_cl_gun = gi.cvar("lazarus_cl_gun", "0", 0);
|
||||||
lazarus_crosshair = gi.cvar("lazarus_crosshair", "0", 0);
|
lazarus_crosshair = gi.cvar("lazarus_crosshair", "0", 0);
|
||||||
|
|
||||||
/*if(lazarus_gl_clear->value)
|
/*if (lazarus_gl_clear->value)
|
||||||
gi.cvar_forceset("gl_clear", va("%d",lazarus_gl_clear->value));
|
gi.cvar_forceset("gl_clear", va("%d", lazarus_gl_clear->value));
|
||||||
else
|
else
|
||||||
gi.cvar_forceset("lazarus_gl_clear", va("%d",gl_clear->value));*/
|
gi.cvar_forceset("lazarus_gl_clear", va("%d", gl_clear->value));*/
|
||||||
|
|
||||||
if(!deathmatch->value && !coop->value)
|
if (!deathmatch->value && !coop->value)
|
||||||
{
|
{
|
||||||
/*if(lazarus_pitch->value) {
|
/*if (lazarus_pitch->value) {
|
||||||
gi.cvar_forceset("cd_loopcount", va("%d",(int)(lazarus_cd_loop->value)));
|
gi.cvar_forceset("cd_loopcount", va("%d", (int)(lazarus_cd_loop->value)));
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
gi.cvar_forceset("m_pitch", va("%f", lazarus_pitch->value));
|
||||||
gi.cvar_forceset("m_pitch", va("%f",lazarus_pitch->value));
|
gi.cvar_forceset("m_yaw", va("%f", lazarus_yaw->value));
|
||||||
gi.cvar_forceset("m_yaw", va("%f",lazarus_yaw->value));
|
gi.cvar_forceset("cl_gun", va("%d", (int)(lazarus_cl_gun->value)));
|
||||||
#endif
|
gi.cvar_forceset("crosshair", va("%d", (int)(lazarus_crosshair->value)));
|
||||||
//gi.cvar_forceset("cl_gun", va("%d",(int)(lazarus_cl_gun->value)));
|
|
||||||
//gi.cvar_forceset("crosshair", va("%d",(int)(lazarus_crosshair->value)));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{*/
|
{*/
|
||||||
gi.cvar_forceset("lazarus_cd_loop", va("%d",(int)(cd_loopcount->value)));
|
gi.cvar_forceset("lazarus_cd_loop", va("%d", (int)(cd_loopcount->value)));
|
||||||
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom autosensitivity
|
#ifndef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
gi.cvar_forceset("lazarus_pitch", va("%f",m_pitch->value));
|
gi.cvar_forceset("lazarus_pitch", va("%f", m_pitch->value));
|
||||||
gi.cvar_forceset("lazarus_yaw", va("%f",m_yaw->value));
|
gi.cvar_forceset("lazarus_yaw", va("%f", m_yaw->value));
|
||||||
gi.cvar_forceset("lazarus_joyp", va("%f",joy_pitchsensitivity->value));
|
gi.cvar_forceset("lazarus_joyp", va("%f", joy_pitchsensitivity->value));
|
||||||
gi.cvar_forceset("lazarus_joyy", va("%f",joy_yawsensitivity->value));
|
gi.cvar_forceset("lazarus_joyy", va("%f", joy_yawsensitivity->value));
|
||||||
|
gi.cvar_forceset("lazarus_cl_gun", va("%d", (int)(cl_gun->value)));
|
||||||
|
gi.cvar_forceset("lazarus_crosshair", va("%d", (int)(crosshair->value)));
|
||||||
#endif
|
#endif
|
||||||
gi.cvar_forceset("lazarus_cl_gun", va("%d",(int)(cl_gun->value)));
|
|
||||||
gi.cvar_forceset("lazarus_crosshair", va("%d",(int)(crosshair->value)));
|
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
tpp = gi.cvar ("tpp", "0", CVAR_ARCHIVE);
|
tpp = gi.cvar ("tpp", "0", CVAR_ARCHIVE);
|
||||||
tpp_auto = gi.cvar ("tpp_auto", "1", 0);
|
tpp_auto = gi.cvar ("tpp_auto", "1", 0);
|
||||||
crossh = gi.cvar ("crossh", "1", 0);
|
// crossh = gi.cvar ("crossh", "1", 0);
|
||||||
allow_download = gi.cvar("allow_download", "0", 0);
|
allow_download = gi.cvar("allow_download", "0", 0);
|
||||||
|
|
||||||
// If this is an SP game and "readout" is not set, force allow_download off
|
// If this is an SP game and "readout" is not set, force allow_download off
|
||||||
|
|
|
@ -454,7 +454,11 @@ void use_target_changelevel (edict_t *self, edict_t *other, edict_t *activator)
|
||||||
if ((self->spawnflags & 4) && activator->client && !deathmatch->value && !coop->value)
|
if ((self->spawnflags & 4) && activator->client && !deathmatch->value && !coop->value)
|
||||||
{
|
{
|
||||||
nostatus = 1;
|
nostatus = 1;
|
||||||
stuffcmd(activator,"cl_gun 0;crosshair 0\n");
|
#ifdef KMQUAKE2_ENGINE_MOD // engine has zoom mode and autosensitivity
|
||||||
|
stuffcmd (activator, "cl_zoommode 1\n");
|
||||||
|
#else
|
||||||
|
stuffcmd (activator, "cl_gun 0;crosshair 0\n");
|
||||||
|
#endif
|
||||||
activator->client->pers.hand = 2;
|
activator->client->pers.hand = 2;
|
||||||
}
|
}
|
||||||
if (activator && activator->client) //Knightmare- paranoia
|
if (activator && activator->client) //Knightmare- paranoia
|
||||||
|
|
|
@ -992,6 +992,9 @@ void MakronSpawn (edict_t *self)
|
||||||
vec3_t vec;
|
vec3_t vec;
|
||||||
edict_t *player;
|
edict_t *player;
|
||||||
|
|
||||||
|
|
||||||
|
self->classname = "monster_makron"; // Knightmare- set the right classname
|
||||||
|
|
||||||
SP_monster_makron_put (self);
|
SP_monster_makron_put (self);
|
||||||
|
|
||||||
// Knightmare- gross hack for map6 of COS3- don't jump
|
// Knightmare- gross hack for map6 of COS3- don't jump
|
||||||
|
|
|
@ -306,8 +306,9 @@ void gunner_pain (edict_t *self, edict_t *other, float kick, int damage)
|
||||||
|
|
||||||
monster_done_dodge (self);
|
monster_done_dodge (self);
|
||||||
|
|
||||||
// if ( (self->moreflags & FL2_COMMANDER) && (damage < 10) )
|
// Tactician Gunner shrugs off small damage
|
||||||
// return;
|
if ( (self->moreflags & FL2_COMMANDER) && (damage < 10) )
|
||||||
|
return;
|
||||||
|
|
||||||
if (!self->groundentity)
|
if (!self->groundentity)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1294,19 +1294,19 @@ void player_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damag
|
||||||
|
|
||||||
self->client->pers.spawn_landmark = false; // paranoia check
|
self->client->pers.spawn_landmark = false; // paranoia check
|
||||||
self->client->pers.spawn_levelchange = false;
|
self->client->pers.spawn_levelchange = false;
|
||||||
SetLazarusCrosshair(self); //backup crosshair
|
SetLazarusCrosshair (self); // backup crosshair
|
||||||
self->client->zooming = 0;
|
self->client->zooming = 0;
|
||||||
self->client->zoomed = false;
|
self->client->zoomed = false;
|
||||||
SetSensitivities(self,true);
|
SetSensitivities (self, true);
|
||||||
|
|
||||||
if (self->client->spycam)
|
if (self->client->spycam)
|
||||||
camera_off(self);
|
camera_off (self);
|
||||||
|
|
||||||
if (self->turret)
|
if (self->turret)
|
||||||
turret_disengage(self->turret);
|
turret_disengage (self->turret);
|
||||||
|
|
||||||
if (self->client->textdisplay)
|
if (self->client->textdisplay)
|
||||||
Text_Close(self);
|
Text_Close (self);
|
||||||
|
|
||||||
VectorClear (self->avelocity);
|
VectorClear (self->avelocity);
|
||||||
|
|
||||||
|
@ -2845,8 +2845,8 @@ void ClientBegin (edict_t *ent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DWH
|
// DWH
|
||||||
SetLazarusCrosshair(ent); //backup crosshair
|
SetLazarusCrosshair (ent); // backup crosshair
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
|
|
||||||
if (game.maxclients == 1)
|
if (game.maxclients == 1)
|
||||||
{
|
{
|
||||||
|
@ -3068,14 +3068,14 @@ void ClientDisconnect (edict_t *ent)
|
||||||
|
|
||||||
|
|
||||||
// DWH
|
// DWH
|
||||||
SetLazarusCrosshair(ent); //backup crosshair
|
SetLazarusCrosshair (ent); // backup crosshair
|
||||||
ent->client->zooming = 0;
|
ent->client->zooming = 0;
|
||||||
ent->client->zoomed = false;
|
ent->client->zoomed = false;
|
||||||
SetSensitivities(ent,true);
|
SetSensitivities (ent, true);
|
||||||
// end DWH
|
// end DWH
|
||||||
|
|
||||||
if (ent->client->textdisplay)
|
if (ent->client->textdisplay)
|
||||||
Text_Close(ent);
|
Text_Close (ent);
|
||||||
|
|
||||||
gi.bprintf (PRINT_HIGH, "%s disconnected\n", ent->client->pers.netname);
|
gi.bprintf (PRINT_HIGH, "%s disconnected\n", ent->client->pers.netname);
|
||||||
|
|
||||||
|
|
|
@ -1200,7 +1200,7 @@ void G_SetClientEffects (edict_t *ent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// show god mode
|
// show god mode
|
||||||
if ((coop->value || deathmatch->value) && ent->flags & FL_GODMODE && !(ent->client && ent->client->chaseactive))
|
if ( (coop->value || deathmatch->value) && (ent->flags & FL_GODMODE) && !(ent->client && ent->client->chaseactive) )
|
||||||
{
|
{
|
||||||
ent->s.effects |= EF_COLOR_SHELL;
|
ent->s.effects |= EF_COLOR_SHELL;
|
||||||
ent->s.renderfx |= (RF_SHELL_RED|RF_SHELL_GREEN|RF_SHELL_BLUE);
|
ent->s.renderfx |= (RF_SHELL_RED|RF_SHELL_GREEN|RF_SHELL_BLUE);
|
||||||
|
|
|
@ -87,7 +87,7 @@ typedef struct
|
||||||
int minimize, maximize;
|
int minimize, maximize;
|
||||||
} glmode_t;
|
} glmode_t;
|
||||||
|
|
||||||
glmode_t modes[] = {
|
glmode_t gl_modes[] = {
|
||||||
{"GL_NEAREST", GL_NEAREST, GL_NEAREST},
|
{"GL_NEAREST", GL_NEAREST, GL_NEAREST},
|
||||||
{"GL_LINEAR", GL_LINEAR, GL_LINEAR},
|
{"GL_LINEAR", GL_LINEAR, GL_LINEAR},
|
||||||
{"GL_NEAREST_MIPMAP_NEAREST", GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST},
|
{"GL_NEAREST_MIPMAP_NEAREST", GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST},
|
||||||
|
@ -96,7 +96,7 @@ glmode_t modes[] = {
|
||||||
{"GL_LINEAR_MIPMAP_LINEAR", GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR}
|
{"GL_LINEAR_MIPMAP_LINEAR", GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_GL_MODES (sizeof(modes) / sizeof (glmode_t))
|
#define NUM_GL_MODES (sizeof(gl_modes) / sizeof (glmode_t))
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -167,14 +167,14 @@ void GL_UpdateAnisoMode (void)
|
||||||
GL_TextureMode
|
GL_TextureMode
|
||||||
===============
|
===============
|
||||||
*/
|
*/
|
||||||
void GL_TextureMode( char *string )
|
void GL_TextureMode (char *string)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
image_t *glt;
|
image_t *glt;
|
||||||
|
|
||||||
for (i=0 ; i< NUM_GL_MODES ; i++)
|
for (i=0; i< NUM_GL_MODES; i++)
|
||||||
{
|
{
|
||||||
if ( !Q_stricmp( modes[i].name, string ) )
|
if ( !Q_stricmp(gl_modes[i].name, string) )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,8 +184,8 @@ void GL_TextureMode( char *string )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gl_filter_min = modes[i].minimize;
|
gl_filter_min = gl_modes[i].minimize;
|
||||||
gl_filter_max = modes[i].maximize;
|
gl_filter_max = gl_modes[i].maximize;
|
||||||
|
|
||||||
// clamp selected anisotropy
|
// clamp selected anisotropy
|
||||||
if (glConfig.anisotropic)
|
if (glConfig.anisotropic)
|
||||||
|
|
|
@ -2340,8 +2340,10 @@ void R_BeginFrame( float camera_separation )
|
||||||
//
|
//
|
||||||
if ( r_texturemode->modified )
|
if ( r_texturemode->modified )
|
||||||
{
|
{
|
||||||
GL_TextureMode( r_texturemode->string );
|
GL_TextureMode (r_texturemode->string);
|
||||||
r_texturemode->modified = false;
|
r_texturemode->modified = false;
|
||||||
|
// we've already set anisotropy, so don't bother setting it again this frame
|
||||||
|
r_anisotropic->modified = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r_anisotropic->modified) // added anisotropic filter update
|
if (r_anisotropic->modified) // added anisotropic filter update
|
||||||
|
|
124
ui/menu_game.c
124
ui/menu_game.c
|
@ -89,88 +89,82 @@ static void CreditsFunc (void *unused)
|
||||||
Menu_Credits_f ();
|
Menu_Credits_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
void Menu_Game_Init (void)
|
void Menu_Game_Init (void)
|
||||||
{
|
{
|
||||||
static const char *difficulty_names[] =
|
int x = 0, y = 0;
|
||||||
{
|
|
||||||
"easy",
|
|
||||||
"medium",
|
|
||||||
"hard",
|
|
||||||
0
|
|
||||||
};
|
|
||||||
int y = 0;
|
|
||||||
|
|
||||||
s_game_menu.x = SCREEN_WIDTH*0.5 - 24;
|
s_game_menu.x = SCREEN_WIDTH*0.5 - 3*MENU_LINE_SIZE;
|
||||||
//s_game_menu.y = 0;
|
s_game_menu.y = SCREEN_HEIGHT*0.5 - 5*MENU_LINE_SIZE; // 0
|
||||||
s_game_menu.nitems = 0;
|
s_game_menu.nitems = 0;
|
||||||
|
|
||||||
s_easy_game_action.generic.type = MTYPE_ACTION;
|
s_easy_game_action.generic.type = MTYPE_ACTION;
|
||||||
s_easy_game_action.generic.textSize = MENU_FONT_SIZE;
|
s_easy_game_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_easy_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_easy_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_easy_game_action.generic.x = 0;
|
s_easy_game_action.generic.x = x;
|
||||||
s_easy_game_action.generic.y = y; // 0
|
s_easy_game_action.generic.y = y; // 0
|
||||||
s_easy_game_action.generic.name = " easy";
|
s_easy_game_action.generic.name = "Easy";
|
||||||
s_easy_game_action.generic.callback = EasyGameFunc;
|
s_easy_game_action.generic.callback = EasyGameFunc;
|
||||||
|
|
||||||
s_medium_game_action.generic.type = MTYPE_ACTION;
|
s_medium_game_action.generic.type = MTYPE_ACTION;
|
||||||
s_medium_game_action.generic.textSize = MENU_FONT_SIZE;
|
s_medium_game_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_medium_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_medium_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_medium_game_action.generic.x = 0;
|
s_medium_game_action.generic.x = x;
|
||||||
s_medium_game_action.generic.y = y += MENU_LINE_SIZE;
|
s_medium_game_action.generic.y = y += 1.5*MENU_LINE_SIZE;
|
||||||
s_medium_game_action.generic.name = " medium";
|
s_medium_game_action.generic.name = "Medium";
|
||||||
s_medium_game_action.generic.callback = MediumGameFunc;
|
s_medium_game_action.generic.callback = MediumGameFunc;
|
||||||
|
|
||||||
s_hard_game_action.generic.type = MTYPE_ACTION;
|
s_hard_game_action.generic.type = MTYPE_ACTION;
|
||||||
s_hard_game_action.generic.textSize = MENU_FONT_SIZE;
|
s_hard_game_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_hard_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_hard_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_hard_game_action.generic.x = 0;
|
s_hard_game_action.generic.x = x;
|
||||||
s_hard_game_action.generic.y = y += MENU_LINE_SIZE;
|
s_hard_game_action.generic.y = y += 1.5*MENU_LINE_SIZE;
|
||||||
s_hard_game_action.generic.name = " hard";
|
s_hard_game_action.generic.name = "Hard";
|
||||||
s_hard_game_action.generic.callback = HardGameFunc;
|
s_hard_game_action.generic.callback = HardGameFunc;
|
||||||
|
|
||||||
s_nitemare_game_action.generic.type = MTYPE_ACTION;
|
|
||||||
s_nitemare_game_action.generic.textSize = MENU_FONT_SIZE;
|
|
||||||
s_nitemare_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
|
||||||
s_nitemare_game_action.generic.x = 0;
|
|
||||||
s_nitemare_game_action.generic.y = y += MENU_LINE_SIZE;
|
|
||||||
s_nitemare_game_action.generic.name = " nightmare";
|
|
||||||
s_nitemare_game_action.generic.callback = NitemareGameFunc;
|
|
||||||
|
|
||||||
|
s_nitemare_game_action.generic.type = MTYPE_ACTION;
|
||||||
|
s_nitemare_game_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
|
s_nitemare_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
|
s_nitemare_game_action.generic.x = x;
|
||||||
|
s_nitemare_game_action.generic.y = y += 1.5*MENU_LINE_SIZE;
|
||||||
|
s_nitemare_game_action.generic.name = "Nightmare";
|
||||||
|
s_nitemare_game_action.generic.callback = NitemareGameFunc;
|
||||||
|
|
||||||
s_blankline.generic.type = MTYPE_SEPARATOR;
|
s_blankline.generic.type = MTYPE_SEPARATOR;
|
||||||
s_blankline.generic.textSize = MENU_FONT_SIZE;
|
s_blankline.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
|
||||||
s_load_game_action.generic.type = MTYPE_ACTION;
|
s_load_game_action.generic.type = MTYPE_ACTION;
|
||||||
s_load_game_action.generic.textSize = MENU_FONT_SIZE;
|
s_load_game_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_load_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_load_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_load_game_action.generic.x = 0;
|
s_load_game_action.generic.x = x;
|
||||||
s_load_game_action.generic.y = y += 2*MENU_LINE_SIZE;
|
s_load_game_action.generic.y = y += 2*MENU_HEADER_LINE_SIZE; // 2*MENU_LINE_SIZE
|
||||||
s_load_game_action.generic.name = " load game";
|
s_load_game_action.generic.name = "Load Game";
|
||||||
s_load_game_action.generic.callback = LoadGameFunc;
|
s_load_game_action.generic.callback = LoadGameFunc;
|
||||||
|
|
||||||
s_save_game_action.generic.type = MTYPE_ACTION;
|
s_save_game_action.generic.type = MTYPE_ACTION;
|
||||||
s_save_game_action.generic.textSize = MENU_FONT_SIZE;
|
s_save_game_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_save_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_save_game_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_save_game_action.generic.x = 0;
|
s_save_game_action.generic.x = x;
|
||||||
s_save_game_action.generic.y = y += MENU_LINE_SIZE;
|
s_save_game_action.generic.y = y += 1.5*MENU_LINE_SIZE;
|
||||||
s_save_game_action.generic.name = " save game";
|
s_save_game_action.generic.name = "Save Game";
|
||||||
s_save_game_action.generic.callback = SaveGameFunc;
|
s_save_game_action.generic.callback = SaveGameFunc;
|
||||||
|
|
||||||
s_credits_action.generic.type = MTYPE_ACTION;
|
s_credits_action.generic.type = MTYPE_ACTION;
|
||||||
s_credits_action.generic.textSize = MENU_FONT_SIZE;
|
s_credits_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_credits_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_credits_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_credits_action.generic.x = 0;
|
s_credits_action.generic.x = x;
|
||||||
s_credits_action.generic.y = y += MENU_LINE_SIZE;
|
s_credits_action.generic.y = y += 2*MENU_HEADER_LINE_SIZE; // 1.5*MENU_LINE_SIZE
|
||||||
s_credits_action.generic.name = " credits";
|
s_credits_action.generic.name = "Credits";
|
||||||
s_credits_action.generic.callback = CreditsFunc;
|
s_credits_action.generic.callback = CreditsFunc;
|
||||||
|
|
||||||
s_game_back_action.generic.type = MTYPE_ACTION;
|
s_game_back_action.generic.type = MTYPE_ACTION;
|
||||||
s_game_back_action.generic.textSize = MENU_FONT_SIZE;
|
s_game_back_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_game_back_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_game_back_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_game_back_action.generic.x = 0;
|
s_game_back_action.generic.x = x;
|
||||||
s_game_back_action.generic.y = y += 2*MENU_LINE_SIZE;
|
s_game_back_action.generic.y = y += 3*MENU_HEADER_LINE_SIZE; // 2*MENU_LINE_SIZE
|
||||||
s_game_back_action.generic.name = " back to main";
|
s_game_back_action.generic.name = "Back to Main";
|
||||||
s_game_back_action.generic.callback = UI_BackMenu;
|
s_game_back_action.generic.callback = UI_BackMenu;
|
||||||
|
|
||||||
UI_AddMenuItem (&s_game_menu, (void *) &s_easy_game_action);
|
UI_AddMenuItem (&s_game_menu, (void *) &s_easy_game_action);
|
||||||
UI_AddMenuItem (&s_game_menu, (void *) &s_medium_game_action);
|
UI_AddMenuItem (&s_game_menu, (void *) &s_medium_game_action);
|
||||||
|
@ -187,7 +181,7 @@ void Menu_Game_Init (void)
|
||||||
|
|
||||||
UI_AddMenuItem (&s_game_menu, (void *) &s_game_back_action);
|
UI_AddMenuItem (&s_game_menu, (void *) &s_game_back_action);
|
||||||
|
|
||||||
UI_CenterMenu (&s_game_menu);
|
// UI_CenterMenu (&s_game_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Game_Draw (void)
|
void Menu_Game_Draw (void)
|
||||||
|
|
|
@ -80,8 +80,8 @@ extern menulist_s s_rules_box;
|
||||||
|
|
||||||
qboolean CTF_menumode (void)
|
qboolean CTF_menumode (void)
|
||||||
{
|
{
|
||||||
if ( (FS_RoguePath() && s_rules_box.curvalue >= 3)
|
if ( (FS_RoguePath() && s_rules_box.curValue >= 3)
|
||||||
|| (!FS_RoguePath() && s_rules_box.curvalue >= 2) )
|
|| (!FS_RoguePath() && s_rules_box.curValue >= 2) )
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -96,7 +96,7 @@ static void DMFlagCallback (void *self)
|
||||||
|
|
||||||
if ( f == &s_friendlyfire_box )
|
if ( f == &s_friendlyfire_box )
|
||||||
{
|
{
|
||||||
if ( f->curvalue )
|
if ( f->curValue )
|
||||||
flags &= ~DF_NO_FRIENDLY_FIRE;
|
flags &= ~DF_NO_FRIENDLY_FIRE;
|
||||||
else
|
else
|
||||||
flags |= DF_NO_FRIENDLY_FIRE;
|
flags |= DF_NO_FRIENDLY_FIRE;
|
||||||
|
@ -104,7 +104,7 @@ static void DMFlagCallback (void *self)
|
||||||
}
|
}
|
||||||
else if ( f == &s_falls_box )
|
else if ( f == &s_falls_box )
|
||||||
{
|
{
|
||||||
if ( f->curvalue )
|
if ( f->curValue )
|
||||||
flags &= ~DF_NO_FALLING;
|
flags &= ~DF_NO_FALLING;
|
||||||
else
|
else
|
||||||
flags |= DF_NO_FALLING;
|
flags |= DF_NO_FALLING;
|
||||||
|
@ -124,7 +124,7 @@ static void DMFlagCallback (void *self)
|
||||||
}
|
}
|
||||||
else if ( f == &s_powerups_box )
|
else if ( f == &s_powerups_box )
|
||||||
{
|
{
|
||||||
if ( f->curvalue )
|
if ( f->curValue )
|
||||||
flags &= ~DF_NO_ITEMS;
|
flags &= ~DF_NO_ITEMS;
|
||||||
else
|
else
|
||||||
flags |= DF_NO_ITEMS;
|
flags |= DF_NO_ITEMS;
|
||||||
|
@ -132,7 +132,7 @@ static void DMFlagCallback (void *self)
|
||||||
}
|
}
|
||||||
else if ( f == &s_health_box )
|
else if ( f == &s_health_box )
|
||||||
{
|
{
|
||||||
if ( f->curvalue )
|
if ( f->curValue )
|
||||||
flags &= ~DF_NO_HEALTH;
|
flags &= ~DF_NO_HEALTH;
|
||||||
else
|
else
|
||||||
flags |= DF_NO_HEALTH;
|
flags |= DF_NO_HEALTH;
|
||||||
|
@ -144,12 +144,12 @@ static void DMFlagCallback (void *self)
|
||||||
}
|
}
|
||||||
else if ( f == &s_teamplay_box )
|
else if ( f == &s_teamplay_box )
|
||||||
{
|
{
|
||||||
if ( f->curvalue == 1 )
|
if ( f->curValue == 1 )
|
||||||
{
|
{
|
||||||
flags |= DF_SKINTEAMS;
|
flags |= DF_SKINTEAMS;
|
||||||
flags &= ~DF_MODELTEAMS;
|
flags &= ~DF_MODELTEAMS;
|
||||||
}
|
}
|
||||||
else if ( f->curvalue == 2 )
|
else if ( f->curValue == 2 )
|
||||||
{
|
{
|
||||||
flags |= DF_MODELTEAMS;
|
flags |= DF_MODELTEAMS;
|
||||||
flags &= ~DF_SKINTEAMS;
|
flags &= ~DF_SKINTEAMS;
|
||||||
|
@ -171,7 +171,7 @@ static void DMFlagCallback (void *self)
|
||||||
}
|
}
|
||||||
else if ( f == &s_armor_box )
|
else if ( f == &s_armor_box )
|
||||||
{
|
{
|
||||||
if ( f->curvalue )
|
if ( f->curValue )
|
||||||
flags &= ~DF_NO_ARMOR;
|
flags &= ~DF_NO_ARMOR;
|
||||||
else
|
else
|
||||||
flags |= DF_NO_ARMOR;
|
flags |= DF_NO_ARMOR;
|
||||||
|
@ -239,7 +239,7 @@ static void DMFlagCallback (void *self)
|
||||||
|
|
||||||
if ( f )
|
if ( f )
|
||||||
{
|
{
|
||||||
if ( f->curvalue == 0 )
|
if ( f->curValue == 0 )
|
||||||
flags &= ~bit;
|
flags &= ~bit;
|
||||||
else
|
else
|
||||||
flags |= bit;
|
flags |= bit;
|
||||||
|
@ -274,8 +274,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_falls_box.generic.y = y; // 0
|
s_falls_box.generic.y = y; // 0
|
||||||
s_falls_box.generic.name = "falling damage";
|
s_falls_box.generic.name = "falling damage";
|
||||||
s_falls_box.generic.callback = DMFlagCallback;
|
s_falls_box.generic.callback = DMFlagCallback;
|
||||||
s_falls_box.itemnames = yes_no_names;
|
s_falls_box.itemNames = yes_no_names;
|
||||||
s_falls_box.curvalue = ( dmflags & DF_NO_FALLING ) == 0;
|
s_falls_box.curValue = ( dmflags & DF_NO_FALLING ) == 0;
|
||||||
|
|
||||||
s_weapons_stay_box.generic.type = MTYPE_SPINCONTROL;
|
s_weapons_stay_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_weapons_stay_box.generic.textSize = MENU_FONT_SIZE;
|
s_weapons_stay_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -283,8 +283,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_weapons_stay_box.generic.y = y += MENU_LINE_SIZE;
|
s_weapons_stay_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_weapons_stay_box.generic.name = "weapons stay";
|
s_weapons_stay_box.generic.name = "weapons stay";
|
||||||
s_weapons_stay_box.generic.callback = DMFlagCallback;
|
s_weapons_stay_box.generic.callback = DMFlagCallback;
|
||||||
s_weapons_stay_box.itemnames = yes_no_names;
|
s_weapons_stay_box.itemNames = yes_no_names;
|
||||||
s_weapons_stay_box.curvalue = ( dmflags & DF_WEAPONS_STAY ) != 0;
|
s_weapons_stay_box.curValue = ( dmflags & DF_WEAPONS_STAY ) != 0;
|
||||||
|
|
||||||
s_instant_powerups_box.generic.type = MTYPE_SPINCONTROL;
|
s_instant_powerups_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_instant_powerups_box.generic.textSize = MENU_FONT_SIZE;
|
s_instant_powerups_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -292,8 +292,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_instant_powerups_box.generic.y = y += MENU_LINE_SIZE;
|
s_instant_powerups_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_instant_powerups_box.generic.name = "instant powerups";
|
s_instant_powerups_box.generic.name = "instant powerups";
|
||||||
s_instant_powerups_box.generic.callback = DMFlagCallback;
|
s_instant_powerups_box.generic.callback = DMFlagCallback;
|
||||||
s_instant_powerups_box.itemnames = yes_no_names;
|
s_instant_powerups_box.itemNames = yes_no_names;
|
||||||
s_instant_powerups_box.curvalue = ( dmflags & DF_INSTANT_ITEMS ) != 0;
|
s_instant_powerups_box.curValue = ( dmflags & DF_INSTANT_ITEMS ) != 0;
|
||||||
|
|
||||||
s_powerups_box.generic.type = MTYPE_SPINCONTROL;
|
s_powerups_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_powerups_box.generic.textSize = MENU_FONT_SIZE;
|
s_powerups_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -301,8 +301,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_powerups_box.generic.y = y += MENU_LINE_SIZE;
|
s_powerups_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_powerups_box.generic.name = "allow powerups";
|
s_powerups_box.generic.name = "allow powerups";
|
||||||
s_powerups_box.generic.callback = DMFlagCallback;
|
s_powerups_box.generic.callback = DMFlagCallback;
|
||||||
s_powerups_box.itemnames = yes_no_names;
|
s_powerups_box.itemNames = yes_no_names;
|
||||||
s_powerups_box.curvalue = ( dmflags & DF_NO_ITEMS ) == 0;
|
s_powerups_box.curValue = ( dmflags & DF_NO_ITEMS ) == 0;
|
||||||
|
|
||||||
s_health_box.generic.type = MTYPE_SPINCONTROL;
|
s_health_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_health_box.generic.textSize = MENU_FONT_SIZE;
|
s_health_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -310,8 +310,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_health_box.generic.y = y += MENU_LINE_SIZE;
|
s_health_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_health_box.generic.callback = DMFlagCallback;
|
s_health_box.generic.callback = DMFlagCallback;
|
||||||
s_health_box.generic.name = "allow health";
|
s_health_box.generic.name = "allow health";
|
||||||
s_health_box.itemnames = yes_no_names;
|
s_health_box.itemNames = yes_no_names;
|
||||||
s_health_box.curvalue = ( dmflags & DF_NO_HEALTH ) == 0;
|
s_health_box.curValue = ( dmflags & DF_NO_HEALTH ) == 0;
|
||||||
|
|
||||||
s_armor_box.generic.type = MTYPE_SPINCONTROL;
|
s_armor_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_armor_box.generic.textSize = MENU_FONT_SIZE;
|
s_armor_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -319,8 +319,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_armor_box.generic.y = y += MENU_LINE_SIZE;
|
s_armor_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_armor_box.generic.name = "allow armor";
|
s_armor_box.generic.name = "allow armor";
|
||||||
s_armor_box.generic.callback = DMFlagCallback;
|
s_armor_box.generic.callback = DMFlagCallback;
|
||||||
s_armor_box.itemnames = yes_no_names;
|
s_armor_box.itemNames = yes_no_names;
|
||||||
s_armor_box.curvalue = ( dmflags & DF_NO_ARMOR ) == 0;
|
s_armor_box.curValue = ( dmflags & DF_NO_ARMOR ) == 0;
|
||||||
|
|
||||||
s_spawn_farthest_box.generic.type = MTYPE_SPINCONTROL;
|
s_spawn_farthest_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_spawn_farthest_box.generic.textSize = MENU_FONT_SIZE;
|
s_spawn_farthest_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -328,8 +328,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_spawn_farthest_box.generic.y = y += MENU_LINE_SIZE;
|
s_spawn_farthest_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_spawn_farthest_box.generic.name = "spawn farthest";
|
s_spawn_farthest_box.generic.name = "spawn farthest";
|
||||||
s_spawn_farthest_box.generic.callback = DMFlagCallback;
|
s_spawn_farthest_box.generic.callback = DMFlagCallback;
|
||||||
s_spawn_farthest_box.itemnames = yes_no_names;
|
s_spawn_farthest_box.itemNames = yes_no_names;
|
||||||
s_spawn_farthest_box.curvalue = ( dmflags & DF_SPAWN_FARTHEST ) != 0;
|
s_spawn_farthest_box.curValue = ( dmflags & DF_SPAWN_FARTHEST ) != 0;
|
||||||
|
|
||||||
s_samelevel_box.generic.type = MTYPE_SPINCONTROL;
|
s_samelevel_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_samelevel_box.generic.textSize = MENU_FONT_SIZE;
|
s_samelevel_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -337,8 +337,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_samelevel_box.generic.y = y += MENU_LINE_SIZE;
|
s_samelevel_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_samelevel_box.generic.name = "same map";
|
s_samelevel_box.generic.name = "same map";
|
||||||
s_samelevel_box.generic.callback = DMFlagCallback;
|
s_samelevel_box.generic.callback = DMFlagCallback;
|
||||||
s_samelevel_box.itemnames = yes_no_names;
|
s_samelevel_box.itemNames = yes_no_names;
|
||||||
s_samelevel_box.curvalue = ( dmflags & DF_SAME_LEVEL ) != 0;
|
s_samelevel_box.curValue = ( dmflags & DF_SAME_LEVEL ) != 0;
|
||||||
|
|
||||||
s_force_respawn_box.generic.type = MTYPE_SPINCONTROL;
|
s_force_respawn_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_force_respawn_box.generic.textSize = MENU_FONT_SIZE;
|
s_force_respawn_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -346,8 +346,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_force_respawn_box.generic.y = y += MENU_LINE_SIZE;
|
s_force_respawn_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_force_respawn_box.generic.name = "force respawn";
|
s_force_respawn_box.generic.name = "force respawn";
|
||||||
s_force_respawn_box.generic.callback = DMFlagCallback;
|
s_force_respawn_box.generic.callback = DMFlagCallback;
|
||||||
s_force_respawn_box.itemnames = yes_no_names;
|
s_force_respawn_box.itemNames = yes_no_names;
|
||||||
s_force_respawn_box.curvalue = ( dmflags & DF_FORCE_RESPAWN ) != 0;
|
s_force_respawn_box.curValue = ( dmflags & DF_FORCE_RESPAWN ) != 0;
|
||||||
|
|
||||||
s_teamplay_box.generic.type = MTYPE_SPINCONTROL;
|
s_teamplay_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_teamplay_box.generic.textSize = MENU_FONT_SIZE;
|
s_teamplay_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -355,8 +355,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_teamplay_box.generic.y = y += MENU_LINE_SIZE;
|
s_teamplay_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_teamplay_box.generic.name = "teamplay";
|
s_teamplay_box.generic.name = "teamplay";
|
||||||
s_teamplay_box.generic.callback = DMFlagCallback;
|
s_teamplay_box.generic.callback = DMFlagCallback;
|
||||||
s_teamplay_box.itemnames = teamplay_names;
|
s_teamplay_box.itemNames = teamplay_names;
|
||||||
s_teamplay_box.curvalue = (dmflags & DF_SKINTEAMS) ? 1 : ((dmflags & DF_MODELTEAMS) ? 2 : 0);
|
s_teamplay_box.curValue = (dmflags & DF_SKINTEAMS) ? 1 : ((dmflags & DF_MODELTEAMS) ? 2 : 0);
|
||||||
|
|
||||||
s_allow_exit_box.generic.type = MTYPE_SPINCONTROL;
|
s_allow_exit_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_allow_exit_box.generic.textSize = MENU_FONT_SIZE;
|
s_allow_exit_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -364,8 +364,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_allow_exit_box.generic.y = y += MENU_LINE_SIZE;
|
s_allow_exit_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_allow_exit_box.generic.name = "allow exit";
|
s_allow_exit_box.generic.name = "allow exit";
|
||||||
s_allow_exit_box.generic.callback = DMFlagCallback;
|
s_allow_exit_box.generic.callback = DMFlagCallback;
|
||||||
s_allow_exit_box.itemnames = yes_no_names;
|
s_allow_exit_box.itemNames = yes_no_names;
|
||||||
s_allow_exit_box.curvalue = ( dmflags & DF_ALLOW_EXIT ) != 0;
|
s_allow_exit_box.curValue = ( dmflags & DF_ALLOW_EXIT ) != 0;
|
||||||
|
|
||||||
s_infinite_ammo_box.generic.type = MTYPE_SPINCONTROL;
|
s_infinite_ammo_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_infinite_ammo_box.generic.textSize = MENU_FONT_SIZE;
|
s_infinite_ammo_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -373,8 +373,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_infinite_ammo_box.generic.y = y += MENU_LINE_SIZE;
|
s_infinite_ammo_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_infinite_ammo_box.generic.name = "infinite ammo";
|
s_infinite_ammo_box.generic.name = "infinite ammo";
|
||||||
s_infinite_ammo_box.generic.callback = DMFlagCallback;
|
s_infinite_ammo_box.generic.callback = DMFlagCallback;
|
||||||
s_infinite_ammo_box.itemnames = yes_no_names;
|
s_infinite_ammo_box.itemNames = yes_no_names;
|
||||||
s_infinite_ammo_box.curvalue = ( dmflags & DF_INFINITE_AMMO ) != 0;
|
s_infinite_ammo_box.curValue = ( dmflags & DF_INFINITE_AMMO ) != 0;
|
||||||
|
|
||||||
s_fixed_fov_box.generic.type = MTYPE_SPINCONTROL;
|
s_fixed_fov_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_fixed_fov_box.generic.textSize = MENU_FONT_SIZE;
|
s_fixed_fov_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -382,8 +382,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_fixed_fov_box.generic.y = y += MENU_LINE_SIZE;
|
s_fixed_fov_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_fixed_fov_box.generic.name = "fixed FOV";
|
s_fixed_fov_box.generic.name = "fixed FOV";
|
||||||
s_fixed_fov_box.generic.callback = DMFlagCallback;
|
s_fixed_fov_box.generic.callback = DMFlagCallback;
|
||||||
s_fixed_fov_box.itemnames = yes_no_names;
|
s_fixed_fov_box.itemNames = yes_no_names;
|
||||||
s_fixed_fov_box.curvalue = ( dmflags & DF_FIXED_FOV ) != 0;
|
s_fixed_fov_box.curValue = ( dmflags & DF_FIXED_FOV ) != 0;
|
||||||
|
|
||||||
s_quad_drop_box.generic.type = MTYPE_SPINCONTROL;
|
s_quad_drop_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_quad_drop_box.generic.textSize = MENU_FONT_SIZE;
|
s_quad_drop_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -391,8 +391,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_quad_drop_box.generic.y = y += MENU_LINE_SIZE;
|
s_quad_drop_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_quad_drop_box.generic.name = "quad drop";
|
s_quad_drop_box.generic.name = "quad drop";
|
||||||
s_quad_drop_box.generic.callback = DMFlagCallback;
|
s_quad_drop_box.generic.callback = DMFlagCallback;
|
||||||
s_quad_drop_box.itemnames = yes_no_names;
|
s_quad_drop_box.itemNames = yes_no_names;
|
||||||
s_quad_drop_box.curvalue = ( dmflags & DF_QUAD_DROP ) != 0;
|
s_quad_drop_box.curValue = ( dmflags & DF_QUAD_DROP ) != 0;
|
||||||
|
|
||||||
s_friendlyfire_box.generic.type = MTYPE_SPINCONTROL;
|
s_friendlyfire_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_friendlyfire_box.generic.textSize = MENU_FONT_SIZE;
|
s_friendlyfire_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -400,8 +400,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_friendlyfire_box.generic.y = y += MENU_LINE_SIZE;
|
s_friendlyfire_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_friendlyfire_box.generic.name = "friendly fire";
|
s_friendlyfire_box.generic.name = "friendly fire";
|
||||||
s_friendlyfire_box.generic.callback = DMFlagCallback;
|
s_friendlyfire_box.generic.callback = DMFlagCallback;
|
||||||
s_friendlyfire_box.itemnames = yes_no_names;
|
s_friendlyfire_box.itemNames = yes_no_names;
|
||||||
s_friendlyfire_box.curvalue = ( dmflags & DF_NO_FRIENDLY_FIRE ) == 0;
|
s_friendlyfire_box.curValue = ( dmflags & DF_NO_FRIENDLY_FIRE ) == 0;
|
||||||
|
|
||||||
// Knightmare added
|
// Knightmare added
|
||||||
if ( FS_ModType("xatrix") )
|
if ( FS_ModType("xatrix") )
|
||||||
|
@ -412,8 +412,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_quadfire_drop_box.generic.y = y += MENU_LINE_SIZE;
|
s_quadfire_drop_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_quadfire_drop_box.generic.name = "dualfire drop";
|
s_quadfire_drop_box.generic.name = "dualfire drop";
|
||||||
s_quadfire_drop_box.generic.callback = DMFlagCallback;
|
s_quadfire_drop_box.generic.callback = DMFlagCallback;
|
||||||
s_quadfire_drop_box.itemnames = yes_no_names;
|
s_quadfire_drop_box.itemNames = yes_no_names;
|
||||||
s_quadfire_drop_box.curvalue = ( dmflags & DF_QUADFIRE_DROP ) != 0;
|
s_quadfire_drop_box.curValue = ( dmflags & DF_QUADFIRE_DROP ) != 0;
|
||||||
}
|
}
|
||||||
//============
|
//============
|
||||||
//ROGUE
|
//ROGUE
|
||||||
|
@ -426,8 +426,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_no_mines_box.generic.y = y += MENU_LINE_SIZE;
|
s_no_mines_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_no_mines_box.generic.name = "remove mines";
|
s_no_mines_box.generic.name = "remove mines";
|
||||||
s_no_mines_box.generic.callback = DMFlagCallback;
|
s_no_mines_box.generic.callback = DMFlagCallback;
|
||||||
s_no_mines_box.itemnames = yes_no_names;
|
s_no_mines_box.itemNames = yes_no_names;
|
||||||
s_no_mines_box.curvalue = ( dmflags & DF_NO_MINES ) != 0;
|
s_no_mines_box.curValue = ( dmflags & DF_NO_MINES ) != 0;
|
||||||
|
|
||||||
s_no_nukes_box.generic.type = MTYPE_SPINCONTROL;
|
s_no_nukes_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_no_nukes_box.generic.textSize = MENU_FONT_SIZE;
|
s_no_nukes_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -435,8 +435,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_no_nukes_box.generic.y = y += MENU_LINE_SIZE;
|
s_no_nukes_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_no_nukes_box.generic.name = "remove nukes";
|
s_no_nukes_box.generic.name = "remove nukes";
|
||||||
s_no_nukes_box.generic.callback = DMFlagCallback;
|
s_no_nukes_box.generic.callback = DMFlagCallback;
|
||||||
s_no_nukes_box.itemnames = yes_no_names;
|
s_no_nukes_box.itemNames = yes_no_names;
|
||||||
s_no_nukes_box.curvalue = ( dmflags & DF_NO_NUKES ) != 0;
|
s_no_nukes_box.curValue = ( dmflags & DF_NO_NUKES ) != 0;
|
||||||
|
|
||||||
s_stack_double_box.generic.type = MTYPE_SPINCONTROL;
|
s_stack_double_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_stack_double_box.generic.textSize = MENU_FONT_SIZE;
|
s_stack_double_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -444,8 +444,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_stack_double_box.generic.y = y += MENU_LINE_SIZE;
|
s_stack_double_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_stack_double_box.generic.name = "2x/4x stacking off";
|
s_stack_double_box.generic.name = "2x/4x stacking off";
|
||||||
s_stack_double_box.generic.callback = DMFlagCallback;
|
s_stack_double_box.generic.callback = DMFlagCallback;
|
||||||
s_stack_double_box.itemnames = yes_no_names;
|
s_stack_double_box.itemNames = yes_no_names;
|
||||||
s_stack_double_box.curvalue = ( dmflags & DF_NO_STACK_DOUBLE ) != 0;
|
s_stack_double_box.curValue = ( dmflags & DF_NO_STACK_DOUBLE ) != 0;
|
||||||
|
|
||||||
s_no_spheres_box.generic.type = MTYPE_SPINCONTROL;
|
s_no_spheres_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_no_spheres_box.generic.textSize = MENU_FONT_SIZE;
|
s_no_spheres_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -453,8 +453,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_no_spheres_box.generic.y = y += MENU_LINE_SIZE;
|
s_no_spheres_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_no_spheres_box.generic.name = "remove spheres";
|
s_no_spheres_box.generic.name = "remove spheres";
|
||||||
s_no_spheres_box.generic.callback = DMFlagCallback;
|
s_no_spheres_box.generic.callback = DMFlagCallback;
|
||||||
s_no_spheres_box.itemnames = yes_no_names;
|
s_no_spheres_box.itemNames = yes_no_names;
|
||||||
s_no_spheres_box.curvalue = ( dmflags & DF_NO_SPHERES ) != 0;
|
s_no_spheres_box.curValue = ( dmflags & DF_NO_SPHERES ) != 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
//ROGUE
|
//ROGUE
|
||||||
|
@ -468,8 +468,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_ctf_forceteam_box.generic.y = y += MENU_LINE_SIZE;
|
s_ctf_forceteam_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_ctf_forceteam_box.generic.name = "force team join";
|
s_ctf_forceteam_box.generic.name = "force team join";
|
||||||
s_ctf_forceteam_box.generic.callback = DMFlagCallback;
|
s_ctf_forceteam_box.generic.callback = DMFlagCallback;
|
||||||
s_ctf_forceteam_box.itemnames = yes_no_names;
|
s_ctf_forceteam_box.itemNames = yes_no_names;
|
||||||
s_ctf_forceteam_box.curvalue = ( dmflags & DF_CTF_FORCEJOIN ) != 0;
|
s_ctf_forceteam_box.curValue = ( dmflags & DF_CTF_FORCEJOIN ) != 0;
|
||||||
|
|
||||||
s_ctf_armor_protect_box.generic.type = MTYPE_SPINCONTROL;
|
s_ctf_armor_protect_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_ctf_armor_protect_box.generic.textSize = MENU_FONT_SIZE;
|
s_ctf_armor_protect_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -477,8 +477,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_ctf_armor_protect_box.generic.y = y += MENU_LINE_SIZE;
|
s_ctf_armor_protect_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_ctf_armor_protect_box.generic.name = "team armor protect";
|
s_ctf_armor_protect_box.generic.name = "team armor protect";
|
||||||
s_ctf_armor_protect_box.generic.callback = DMFlagCallback;
|
s_ctf_armor_protect_box.generic.callback = DMFlagCallback;
|
||||||
s_ctf_armor_protect_box.itemnames = yes_no_names;
|
s_ctf_armor_protect_box.itemNames = yes_no_names;
|
||||||
s_ctf_armor_protect_box.curvalue = ( dmflags & DF_ARMOR_PROTECT ) != 0;
|
s_ctf_armor_protect_box.curValue = ( dmflags & DF_ARMOR_PROTECT ) != 0;
|
||||||
|
|
||||||
s_ctf_notechs_box.generic.type = MTYPE_SPINCONTROL;
|
s_ctf_notechs_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_ctf_notechs_box.generic.textSize = MENU_FONT_SIZE;
|
s_ctf_notechs_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -486,8 +486,8 @@ void Menu_DMOptions_Init (void)
|
||||||
s_ctf_notechs_box.generic.y = y += MENU_LINE_SIZE;
|
s_ctf_notechs_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_ctf_notechs_box.generic.name = "disable techs";
|
s_ctf_notechs_box.generic.name = "disable techs";
|
||||||
s_ctf_notechs_box.generic.callback = DMFlagCallback;
|
s_ctf_notechs_box.generic.callback = DMFlagCallback;
|
||||||
s_ctf_notechs_box.itemnames = yes_no_names;
|
s_ctf_notechs_box.itemNames = yes_no_names;
|
||||||
s_ctf_notechs_box.curvalue = ( dmflags & DF_CTF_NO_TECH ) != 0;
|
s_ctf_notechs_box.curValue = ( dmflags & DF_CTF_NO_TECH ) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
s_dmoptions_back_action.generic.type = MTYPE_ACTION;
|
s_dmoptions_back_action.generic.type = MTYPE_ACTION;
|
||||||
|
|
|
@ -43,8 +43,8 @@ static menuseparator_s s_download_title;
|
||||||
static menulist_s s_allow_download_box;
|
static menulist_s s_allow_download_box;
|
||||||
|
|
||||||
#ifdef USE_CURL // HTTP downloading from R1Q2
|
#ifdef USE_CURL // HTTP downloading from R1Q2
|
||||||
static menulist_s s_allow_http_download_box;
|
static menulist_s s_http_download_box;
|
||||||
static menulist_s s_allow_http_fallback_box;
|
static menulist_s s_http_fallback_box;
|
||||||
#endif // USE_CURL
|
#endif // USE_CURL
|
||||||
|
|
||||||
static menulist_s s_allow_download_maps_box;
|
static menulist_s s_allow_download_maps_box;
|
||||||
|
@ -55,53 +55,68 @@ static menulist_s s_allow_download_sounds_box;
|
||||||
|
|
||||||
static menuaction_s s_download_back_action;
|
static menuaction_s s_download_back_action;
|
||||||
|
|
||||||
static void DownloadCallback (void *self)
|
//=======================================================================
|
||||||
{
|
|
||||||
menulist_s *f = (menulist_s *) self;
|
|
||||||
|
|
||||||
if (f == &s_allow_download_box)
|
static void AllowDownloadCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue("allow_download", f->curvalue);
|
UI_MenuSpinControl_SaveValue (&s_allow_download_box, "allow_download");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_CURL // HTTP downloading from R1Q2
|
#ifdef USE_CURL // HTTP downloading from R1Q2
|
||||||
if (f == &s_allow_http_download_box)
|
static void HTTPDownloadCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue("cl_http_downloads", f->curvalue);
|
UI_MenuSpinControl_SaveValue (&s_http_download_box, "cl_http_downloads");
|
||||||
}
|
}
|
||||||
else if (f == &s_allow_http_fallback_box)
|
|
||||||
{
|
static void HTTPFallbackCallback (void *unused)
|
||||||
Cvar_SetValue("cl_http_fallback", f->curvalue);
|
{
|
||||||
}
|
UI_MenuSpinControl_SaveValue (&s_http_fallback_box, "cl_http_fallback");
|
||||||
|
}
|
||||||
#endif // USE_CURL
|
#endif // USE_CURL
|
||||||
|
|
||||||
else if (f == &s_allow_download_maps_box)
|
static void DownloadMapsCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue("allow_download_maps", f->curvalue);
|
UI_MenuSpinControl_SaveValue (&s_allow_download_maps_box, "allow_download_maps");
|
||||||
}
|
|
||||||
|
|
||||||
// Knightmare- option to allow downloading 24-bit textures
|
|
||||||
else if (f == &s_allow_download_textures_24bit_box)
|
|
||||||
{
|
|
||||||
Cvar_SetValue("allow_download_textures_24bit", f->curvalue);
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (f == &s_allow_download_models_box)
|
|
||||||
{
|
|
||||||
Cvar_SetValue("allow_download_models", f->curvalue);
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (f == &s_allow_download_players_box)
|
|
||||||
{
|
|
||||||
Cvar_SetValue("allow_download_players", f->curvalue);
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (f == &s_allow_download_sounds_box)
|
|
||||||
{
|
|
||||||
Cvar_SetValue("allow_download_sounds", f->curvalue);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void DownloadTextures24BitCallback (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_allow_download_textures_24bit_box, "allow_download_textures_24bit");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void DownloadPlayersCallback (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_allow_download_players_box, "allow_download_players");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void DownloadModelsCallback (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_allow_download_models_box, "allow_download_models");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void DownloadSoundsCallback (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_allow_download_sounds_box, "allow_download_sounds");
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
static void M_Download_SetMenuItemValues (void)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SetValue (&s_allow_download_box, "allow_download", 0, 1, true);
|
||||||
|
#ifdef USE_CURL // HTTP downloading from R1Q2
|
||||||
|
UI_MenuSpinControl_SetValue (&s_http_download_box, "cl_http_downloads", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_http_fallback_box, "cl_http_fallback", 0, 1, true);
|
||||||
|
#endif // USE_CURL
|
||||||
|
UI_MenuSpinControl_SetValue (&s_allow_download_maps_box, "allow_download_maps", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_allow_download_textures_24bit_box, "allow_download_textures_24bit", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_allow_download_players_box, "allow_download_players", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_allow_download_models_box, "allow_download_models", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_allow_download_sounds_box, "allow_download_sounds", 0, 1, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
void Menu_DownloadOptions_Init (void)
|
void Menu_DownloadOptions_Init (void)
|
||||||
{
|
{
|
||||||
static const char *yes_no_names[] =
|
static const char *yes_no_names[] =
|
||||||
|
@ -110,14 +125,10 @@ void Menu_DownloadOptions_Init (void)
|
||||||
"yes",
|
"yes",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
int y = 3*MENU_LINE_SIZE; // 0
|
||||||
// int y = 0;
|
|
||||||
int y = 3*MENU_LINE_SIZE;
|
|
||||||
|
|
||||||
s_downloadoptions_menu.x = SCREEN_WIDTH*0.5;
|
s_downloadoptions_menu.x = SCREEN_WIDTH*0.5;
|
||||||
s_downloadoptions_menu.y = SCREEN_HEIGHT*0.5 - 58;
|
s_downloadoptions_menu.y = SCREEN_HEIGHT*0.5 - 58;
|
||||||
// s_downloadoptions_menu.x = viddef.width * 0.50;
|
|
||||||
// s_downloadoptions_menu.y = 0;
|
|
||||||
s_downloadoptions_menu.nitems = 0;
|
s_downloadoptions_menu.nitems = 0;
|
||||||
|
|
||||||
s_download_title.generic.type = MTYPE_SEPARATOR;
|
s_download_title.generic.type = MTYPE_SEPARATOR;
|
||||||
|
@ -131,31 +142,28 @@ void Menu_DownloadOptions_Init (void)
|
||||||
s_allow_download_box.generic.x = 0;
|
s_allow_download_box.generic.x = 0;
|
||||||
s_allow_download_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_allow_download_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_allow_download_box.generic.name = "allow downloading";
|
s_allow_download_box.generic.name = "allow downloading";
|
||||||
s_allow_download_box.generic.callback = DownloadCallback;
|
s_allow_download_box.generic.callback = AllowDownloadCallback; // DownloadCallback
|
||||||
s_allow_download_box.itemnames = yes_no_names;
|
s_allow_download_box.itemNames = yes_no_names;
|
||||||
s_allow_download_box.curvalue = (Cvar_VariableValue("allow_download") != 0);
|
|
||||||
s_allow_download_box.generic.statusbar = "enable or disable all downloading";
|
s_allow_download_box.generic.statusbar = "enable or disable all downloading";
|
||||||
|
|
||||||
#ifdef USE_CURL // HTTP downloading from R1Q2
|
#ifdef USE_CURL // HTTP downloading from R1Q2
|
||||||
s_allow_http_download_box.generic.type = MTYPE_SPINCONTROL;
|
s_http_download_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_allow_http_download_box.generic.textSize = MENU_FONT_SIZE;
|
s_http_download_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_allow_http_download_box.generic.x = 0;
|
s_http_download_box.generic.x = 0;
|
||||||
s_allow_http_download_box.generic.y = y += MENU_LINE_SIZE;
|
s_http_download_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_allow_http_download_box.generic.name = "HTTP downloading";
|
s_http_download_box.generic.name = "HTTP downloading";
|
||||||
s_allow_http_download_box.generic.callback = DownloadCallback;
|
s_http_download_box.generic.callback = HTTPDownloadCallback; // DownloadCallback
|
||||||
s_allow_http_download_box.itemnames = yes_no_names;
|
s_http_download_box.itemNames = yes_no_names;
|
||||||
s_allow_http_download_box.curvalue = (Cvar_VariableValue("cl_http_downloads") != 0);
|
s_http_download_box.generic.statusbar = "use HTTP downloading on supported servers";
|
||||||
s_allow_http_download_box.generic.statusbar = "use HTTP downloading on supported servers";
|
|
||||||
|
|
||||||
s_allow_http_fallback_box.generic.type = MTYPE_SPINCONTROL;
|
s_http_fallback_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_allow_http_fallback_box.generic.textSize = MENU_FONT_SIZE;
|
s_http_fallback_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_allow_http_fallback_box.generic.x = 0;
|
s_http_fallback_box.generic.x = 0;
|
||||||
s_allow_http_fallback_box.generic.y = y += MENU_LINE_SIZE;
|
s_http_fallback_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_allow_http_fallback_box.generic.name = "HTTP fallback";
|
s_http_fallback_box.generic.name = "HTTP fallback";
|
||||||
s_allow_http_fallback_box.generic.callback = DownloadCallback;
|
s_http_fallback_box.generic.callback = HTTPFallbackCallback; // DownloadCallback
|
||||||
s_allow_http_fallback_box.itemnames = yes_no_names;
|
s_http_fallback_box.itemNames = yes_no_names;
|
||||||
s_allow_http_fallback_box.curvalue = (Cvar_VariableValue("cl_http_fallback") != 0);
|
s_http_fallback_box.generic.statusbar = "enable to allow HTTP downloads to fall back to Q2Pro path and UDP";
|
||||||
s_allow_http_fallback_box.generic.statusbar = "enable to allow HTTP downloads to fall back to Q2Pro path and UDP";
|
|
||||||
#endif // USE_CURL
|
#endif // USE_CURL
|
||||||
|
|
||||||
s_allow_download_maps_box.generic.type = MTYPE_SPINCONTROL;
|
s_allow_download_maps_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -163,9 +171,8 @@ void Menu_DownloadOptions_Init (void)
|
||||||
s_allow_download_maps_box.generic.x = 0;
|
s_allow_download_maps_box.generic.x = 0;
|
||||||
s_allow_download_maps_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_allow_download_maps_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_allow_download_maps_box.generic.name = "maps/textures";
|
s_allow_download_maps_box.generic.name = "maps/textures";
|
||||||
s_allow_download_maps_box.generic.callback = DownloadCallback;
|
s_allow_download_maps_box.generic.callback = DownloadMapsCallback; // DownloadCallback
|
||||||
s_allow_download_maps_box.itemnames = yes_no_names;
|
s_allow_download_maps_box.itemNames = yes_no_names;
|
||||||
s_allow_download_maps_box.curvalue = (Cvar_VariableValue("allow_download_maps") != 0);
|
|
||||||
s_allow_download_maps_box.generic.statusbar = "enable to allow downloading of maps and textures";
|
s_allow_download_maps_box.generic.statusbar = "enable to allow downloading of maps and textures";
|
||||||
|
|
||||||
// Knightmare- option to allow downloading 24-bit textures
|
// Knightmare- option to allow downloading 24-bit textures
|
||||||
|
@ -174,10 +181,9 @@ void Menu_DownloadOptions_Init (void)
|
||||||
s_allow_download_textures_24bit_box.generic.x = 0;
|
s_allow_download_textures_24bit_box.generic.x = 0;
|
||||||
s_allow_download_textures_24bit_box.generic.y = y += MENU_LINE_SIZE;
|
s_allow_download_textures_24bit_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_allow_download_textures_24bit_box.generic.name = "24-bit textures";
|
s_allow_download_textures_24bit_box.generic.name = "24-bit textures";
|
||||||
s_allow_download_textures_24bit_box.generic.callback = DownloadCallback;
|
s_allow_download_textures_24bit_box.generic.callback = DownloadTextures24BitCallback; // DownloadCallback
|
||||||
s_allow_download_textures_24bit_box.generic.statusbar = "enable to allow downloading of JPG and TGA textures";
|
s_allow_download_textures_24bit_box.generic.statusbar = "enable to allow downloading of JPG and TGA textures";
|
||||||
s_allow_download_textures_24bit_box.itemnames = yes_no_names;
|
s_allow_download_textures_24bit_box.itemNames = yes_no_names;
|
||||||
s_allow_download_textures_24bit_box.curvalue = (Cvar_VariableValue("allow_download_textures_24bit") != 0);
|
|
||||||
s_allow_download_textures_24bit_box.generic.statusbar = "enable to allow downloading of JPG and TGA textures";
|
s_allow_download_textures_24bit_box.generic.statusbar = "enable to allow downloading of JPG and TGA textures";
|
||||||
|
|
||||||
s_allow_download_players_box.generic.type = MTYPE_SPINCONTROL;
|
s_allow_download_players_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -185,9 +191,8 @@ void Menu_DownloadOptions_Init (void)
|
||||||
s_allow_download_players_box.generic.x = 0;
|
s_allow_download_players_box.generic.x = 0;
|
||||||
s_allow_download_players_box.generic.y = y += MENU_LINE_SIZE;
|
s_allow_download_players_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_allow_download_players_box.generic.name = "player models/skins";
|
s_allow_download_players_box.generic.name = "player models/skins";
|
||||||
s_allow_download_players_box.generic.callback = DownloadCallback;
|
s_allow_download_players_box.generic.callback = DownloadPlayersCallback; // DownloadCallback
|
||||||
s_allow_download_players_box.itemnames = yes_no_names;
|
s_allow_download_players_box.itemNames = yes_no_names;
|
||||||
s_allow_download_players_box.curvalue = (Cvar_VariableValue("allow_download_players") != 0);
|
|
||||||
s_allow_download_players_box.generic.statusbar = "enable to allow downloading of player models";
|
s_allow_download_players_box.generic.statusbar = "enable to allow downloading of player models";
|
||||||
|
|
||||||
s_allow_download_models_box.generic.type = MTYPE_SPINCONTROL;
|
s_allow_download_models_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -195,9 +200,8 @@ void Menu_DownloadOptions_Init (void)
|
||||||
s_allow_download_models_box.generic.x = 0;
|
s_allow_download_models_box.generic.x = 0;
|
||||||
s_allow_download_models_box.generic.y = y += MENU_LINE_SIZE;
|
s_allow_download_models_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_allow_download_models_box.generic.name = "models";
|
s_allow_download_models_box.generic.name = "models";
|
||||||
s_allow_download_models_box.generic.callback = DownloadCallback;
|
s_allow_download_models_box.generic.callback = DownloadModelsCallback; // DownloadCallback
|
||||||
s_allow_download_models_box.itemnames = yes_no_names;
|
s_allow_download_models_box.itemNames = yes_no_names;
|
||||||
s_allow_download_models_box.curvalue = (Cvar_VariableValue("allow_download_models") != 0);
|
|
||||||
s_allow_download_models_box.generic.statusbar = "enable to allow downloading of models";
|
s_allow_download_models_box.generic.statusbar = "enable to allow downloading of models";
|
||||||
|
|
||||||
s_allow_download_sounds_box.generic.type = MTYPE_SPINCONTROL;
|
s_allow_download_sounds_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -205,9 +209,8 @@ void Menu_DownloadOptions_Init (void)
|
||||||
s_allow_download_sounds_box.generic.x = 0;
|
s_allow_download_sounds_box.generic.x = 0;
|
||||||
s_allow_download_sounds_box.generic.y = y += MENU_LINE_SIZE;
|
s_allow_download_sounds_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_allow_download_sounds_box.generic.name = "sounds";
|
s_allow_download_sounds_box.generic.name = "sounds";
|
||||||
s_allow_download_sounds_box.generic.callback = DownloadCallback;
|
s_allow_download_sounds_box.generic.callback = DownloadSoundsCallback; // DownloadCallback
|
||||||
s_allow_download_sounds_box.itemnames = yes_no_names;
|
s_allow_download_sounds_box.itemNames = yes_no_names;
|
||||||
s_allow_download_sounds_box.curvalue = (Cvar_VariableValue("allow_download_sounds") != 0);
|
|
||||||
s_allow_download_sounds_box.generic.statusbar = "enable to allow downloading of sounds";
|
s_allow_download_sounds_box.generic.statusbar = "enable to allow downloading of sounds";
|
||||||
|
|
||||||
s_download_back_action.generic.type = MTYPE_ACTION;
|
s_download_back_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -218,12 +221,14 @@ void Menu_DownloadOptions_Init (void)
|
||||||
s_download_back_action.generic.name = " back";
|
s_download_back_action.generic.name = " back";
|
||||||
s_download_back_action.generic.callback = UI_BackMenu;
|
s_download_back_action.generic.callback = UI_BackMenu;
|
||||||
|
|
||||||
|
M_Download_SetMenuItemValues ();
|
||||||
|
|
||||||
UI_AddMenuItem (&s_downloadoptions_menu, &s_download_title);
|
UI_AddMenuItem (&s_downloadoptions_menu, &s_download_title);
|
||||||
UI_AddMenuItem (&s_downloadoptions_menu, &s_allow_download_box);
|
UI_AddMenuItem (&s_downloadoptions_menu, &s_allow_download_box);
|
||||||
|
|
||||||
#ifdef USE_CURL // HTTP downloading from R1Q2
|
#ifdef USE_CURL // HTTP downloading from R1Q2
|
||||||
UI_AddMenuItem (&s_downloadoptions_menu, &s_allow_http_download_box);
|
UI_AddMenuItem (&s_downloadoptions_menu, &s_http_download_box);
|
||||||
UI_AddMenuItem (&s_downloadoptions_menu, &s_allow_http_fallback_box);
|
UI_AddMenuItem (&s_downloadoptions_menu, &s_http_fallback_box);
|
||||||
#endif // USE_CURL
|
#endif // USE_CURL
|
||||||
|
|
||||||
UI_AddMenuItem (&s_downloadoptions_menu, &s_allow_download_maps_box);
|
UI_AddMenuItem (&s_downloadoptions_menu, &s_allow_download_maps_box);
|
||||||
|
|
|
@ -52,7 +52,7 @@ JOIN SERVER MENU
|
||||||
// Knightmare- client compatibility option
|
// Knightmare- client compatibility option
|
||||||
static void ClientCompatibilityFunc (void *unused)
|
static void ClientCompatibilityFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_servertrick", s_joinserver_compatibility_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_joinserver_compatibility_box, "cl_servertrick");
|
||||||
}
|
}
|
||||||
|
|
||||||
void JoinServerFunc (void *self)
|
void JoinServerFunc (void *self)
|
||||||
|
@ -69,77 +69,75 @@ void AddressBookFunc (void *self)
|
||||||
Menu_AddressBook_f ();
|
Menu_AddressBook_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Knightmare- init client compatibility menu option
|
|
||||||
static void JoinserverSetMenuItemValues (void)
|
|
||||||
{
|
|
||||||
Cvar_SetValue( "cl_servertrick", ClampCvar( 0, 1, Cvar_VariableValue("cl_servertrick") ) );
|
|
||||||
s_joinserver_compatibility_box.curvalue = Cvar_VariableValue("cl_servertrick");
|
|
||||||
}
|
|
||||||
|
|
||||||
void SearchLocalGamesFunc (void *self)
|
void SearchLocalGamesFunc (void *self)
|
||||||
{
|
{
|
||||||
UI_SearchLocalGames ();
|
UI_SearchLocalGames ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
// Knightmare- init client compatibility menu option
|
||||||
|
static void M_Joinserver_SetMenuItemValues (void)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SetValue (&s_joinserver_compatibility_box, "cl_servertrick", 0, 1, true);
|
||||||
|
}
|
||||||
|
|
||||||
//=========================================================
|
//=========================================================
|
||||||
|
|
||||||
void Menu_JoinServer_Init (void)
|
void Menu_JoinServer_Init (void)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
int y = 0;
|
|
||||||
|
|
||||||
static const char *compatibility_names[] =
|
static const char *compatibility_names[] =
|
||||||
{
|
{
|
||||||
"version 56 (KMQuake2)", // was 35
|
"version 56 (KMQuake2)",
|
||||||
"version 34 (stock Quake2)",
|
"version 34 (stock Quake2)",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
int i;
|
||||||
JoinserverSetMenuItemValues (); // init item values
|
int y = 0;
|
||||||
|
|
||||||
s_joinserver_menu.x = SCREEN_WIDTH*0.5 - 160;
|
s_joinserver_menu.x = SCREEN_WIDTH*0.5 - 160;
|
||||||
s_joinserver_menu.y = SCREEN_HEIGHT*0.5 - 80;
|
s_joinserver_menu.y = SCREEN_HEIGHT*0.5 - 80;
|
||||||
s_joinserver_menu.nitems = 0;
|
s_joinserver_menu.nitems = 0;
|
||||||
|
|
||||||
// init client compatibility menu option
|
// init client compatibility menu option
|
||||||
s_joinserver_compat_title.generic.type = MTYPE_SEPARATOR;
|
s_joinserver_compat_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_joinserver_compat_title.generic.textSize = MENU_FONT_SIZE;
|
s_joinserver_compat_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_joinserver_compat_title.generic.name = "client protocol compatibility";
|
s_joinserver_compat_title.generic.name = "client protocol compatibility";
|
||||||
s_joinserver_compat_title.generic.x = 200;
|
s_joinserver_compat_title.generic.x = 200;
|
||||||
s_joinserver_compat_title.generic.y = y;
|
s_joinserver_compat_title.generic.y = y;
|
||||||
|
|
||||||
s_joinserver_compatibility_box.generic.type = MTYPE_SPINCONTROL;
|
s_joinserver_compatibility_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_joinserver_compatibility_box.generic.textSize = MENU_FONT_SIZE;
|
s_joinserver_compatibility_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_joinserver_compatibility_box.generic.name = "";
|
s_joinserver_compatibility_box.generic.name = "";
|
||||||
s_joinserver_compatibility_box.generic.x = -32;
|
s_joinserver_compatibility_box.generic.x = -32;
|
||||||
s_joinserver_compatibility_box.generic.y = y += MENU_LINE_SIZE;
|
s_joinserver_compatibility_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_joinserver_compatibility_box.generic.cursor_offset = -24;
|
s_joinserver_compatibility_box.generic.callback = ClientCompatibilityFunc;
|
||||||
s_joinserver_compatibility_box.generic.callback = ClientCompatibilityFunc;
|
s_joinserver_compatibility_box.itemNames = compatibility_names;
|
||||||
s_joinserver_compatibility_box.generic.statusbar = "set to version 34 to join non-KMQuake2 servers";
|
s_joinserver_compatibility_box.generic.statusbar = "set to version 34 to join non-KMQuake2 servers";
|
||||||
s_joinserver_compatibility_box.itemnames = compatibility_names;
|
s_joinserver_compatibility_box.generic.cursor_offset = 0;
|
||||||
|
|
||||||
s_joinserver_address_book_action.generic.type = MTYPE_ACTION;
|
s_joinserver_address_book_action.generic.type = MTYPE_ACTION;
|
||||||
s_joinserver_address_book_action.generic.textSize = MENU_FONT_SIZE;
|
s_joinserver_address_book_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_joinserver_address_book_action.generic.name = "address book";
|
s_joinserver_address_book_action.generic.name = "address book";
|
||||||
s_joinserver_address_book_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_joinserver_address_book_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_joinserver_address_book_action.generic.x = 0;
|
s_joinserver_address_book_action.generic.x = 0;
|
||||||
s_joinserver_address_book_action.generic.y = y += 2*MENU_LINE_SIZE;
|
s_joinserver_address_book_action.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_joinserver_address_book_action.generic.callback = AddressBookFunc;
|
s_joinserver_address_book_action.generic.callback = AddressBookFunc;
|
||||||
|
|
||||||
s_joinserver_search_action.generic.type = MTYPE_ACTION;
|
s_joinserver_search_action.generic.type = MTYPE_ACTION;
|
||||||
s_joinserver_search_action.generic.textSize = MENU_FONT_SIZE;
|
s_joinserver_search_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_joinserver_search_action.generic.name = "refresh server list";
|
s_joinserver_search_action.generic.name = "refresh server list";
|
||||||
s_joinserver_search_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_joinserver_search_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_joinserver_search_action.generic.x = 0;
|
s_joinserver_search_action.generic.x = 0;
|
||||||
s_joinserver_search_action.generic.y = y += MENU_LINE_SIZE;
|
s_joinserver_search_action.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_joinserver_search_action.generic.callback = SearchLocalGamesFunc;
|
s_joinserver_search_action.generic.callback = SearchLocalGamesFunc;
|
||||||
s_joinserver_search_action.generic.statusbar = "search for servers";
|
s_joinserver_search_action.generic.statusbar = "search for servers";
|
||||||
|
|
||||||
s_joinserver_server_title.generic.type = MTYPE_SEPARATOR;
|
s_joinserver_server_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_joinserver_server_title.generic.textSize = MENU_FONT_SIZE;
|
s_joinserver_server_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_joinserver_server_title.generic.name = "connect to...";
|
s_joinserver_server_title.generic.name = "connect to...";
|
||||||
s_joinserver_server_title.generic.x = 80;
|
s_joinserver_server_title.generic.x = 80;
|
||||||
s_joinserver_server_title.generic.y = y += 2*MENU_LINE_SIZE;
|
s_joinserver_server_title.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
|
|
||||||
y += MENU_LINE_SIZE;
|
y += MENU_LINE_SIZE;
|
||||||
for ( i = 0; i < UI_MAX_LOCAL_SERVERS; i++ )
|
for ( i = 0; i < UI_MAX_LOCAL_SERVERS; i++ )
|
||||||
|
@ -163,6 +161,8 @@ void Menu_JoinServer_Init (void)
|
||||||
s_joinserver_back_action.generic.y = y += (UI_MAX_LOCAL_SERVERS+2)*MENU_LINE_SIZE;
|
s_joinserver_back_action.generic.y = y += (UI_MAX_LOCAL_SERVERS+2)*MENU_LINE_SIZE;
|
||||||
s_joinserver_back_action.generic.callback = UI_BackMenu;
|
s_joinserver_back_action.generic.callback = UI_BackMenu;
|
||||||
|
|
||||||
|
M_Joinserver_SetMenuItemValues (); // init item values
|
||||||
|
|
||||||
UI_AddMenuItem (&s_joinserver_menu, &s_joinserver_compat_title);
|
UI_AddMenuItem (&s_joinserver_menu, &s_joinserver_compat_title);
|
||||||
UI_AddMenuItem (&s_joinserver_menu, &s_joinserver_compatibility_box);
|
UI_AddMenuItem (&s_joinserver_menu, &s_joinserver_compatibility_box);
|
||||||
|
|
||||||
|
|
|
@ -55,20 +55,15 @@ static menuaction_s s_playerconfig_back_action;
|
||||||
|
|
||||||
#define NUM_SKINBOX_ITEMS 7
|
#define NUM_SKINBOX_ITEMS 7
|
||||||
|
|
||||||
static int rate_tbl[] = { 2500, 3200, 5000, 10000, 15000, 25000, 0 };
|
|
||||||
static const char *rate_names[] = { "28.8 Modem", "33.6 Modem", "56K/Single ISDN",
|
|
||||||
"Dual ISDN", "Cable/DSL", "T1/LAN", "User defined", 0 };
|
|
||||||
|
|
||||||
static void HandednessCallback (void *unused)
|
static void HandednessCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("hand", s_playerconfig_handedness_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_playerconfig_handedness_box, "hand");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void RateCallback (void *unused)
|
static void RateCallback (void *unused)
|
||||||
{
|
{
|
||||||
if (s_playerconfig_rate_box.curvalue != sizeof(rate_tbl) / sizeof(*rate_tbl) - 1)
|
UI_MenuSpinControl_SaveValue (&s_playerconfig_rate_box, "rate");
|
||||||
Cvar_SetValue ("rate", rate_tbl[s_playerconfig_rate_box.curvalue]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,10 +71,10 @@ static void Menu_PlayerModelCallback (void *unused)
|
||||||
{
|
{
|
||||||
int mNum, sNum;
|
int mNum, sNum;
|
||||||
|
|
||||||
mNum = s_playerconfig_model_box.curvalue;
|
mNum = s_playerconfig_model_box.curValue;
|
||||||
s_playerconfig_skin_box.itemnames = ui_pmi[mNum].skinDisplayNames;
|
s_playerconfig_skin_box.itemNames = ui_pmi[mNum].skinDisplayNames;
|
||||||
s_playerconfig_skin_box.curvalue = 0;
|
s_playerconfig_skin_box.curValue = 0;
|
||||||
sNum = s_playerconfig_skin_box.curvalue;
|
sNum = s_playerconfig_skin_box.curValue;
|
||||||
|
|
||||||
UI_UpdatePlayerModelInfo (mNum, sNum);
|
UI_UpdatePlayerModelInfo (mNum, sNum);
|
||||||
}
|
}
|
||||||
|
@ -89,8 +84,8 @@ static void Menu_PlayerSkinCallback (void *unused)
|
||||||
{
|
{
|
||||||
int mNum, sNum;
|
int mNum, sNum;
|
||||||
|
|
||||||
mNum = s_playerconfig_model_box.curvalue;
|
mNum = s_playerconfig_model_box.curValue;
|
||||||
sNum = s_playerconfig_skin_box.curvalue;
|
sNum = s_playerconfig_skin_box.curValue;
|
||||||
UI_UpdatePlayerSkinInfo (mNum, sNum);
|
UI_UpdatePlayerSkinInfo (mNum, sNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,17 +96,34 @@ static void Menu_PlayerSkinCallback (void *unused)
|
||||||
|
|
||||||
qboolean Menu_PlayerConfig_Init (void)
|
qboolean Menu_PlayerConfig_Init (void)
|
||||||
{
|
{
|
||||||
int i, y;
|
int y;
|
||||||
int mNum = 0, sNum = 0;
|
int mNum = 0, sNum = 0;
|
||||||
|
|
||||||
cvar_t *hand = Cvar_Get("hand", "0", CVAR_USERINFO | CVAR_ARCHIVE);
|
|
||||||
|
|
||||||
static const char *handedness_names[] = { "right", "left", "center", 0 };
|
static const char *handedness_names[] = { "right", "left", "center", 0 };
|
||||||
|
|
||||||
if ( (hand->integer < 0) || (hand->integer > 2) )
|
static const char *rate_names[] =
|
||||||
Cvar_SetValue ("hand", 0);
|
{
|
||||||
|
"28.8 Modem",
|
||||||
|
"33.6 Modem",
|
||||||
|
"56K/Single ISDN",
|
||||||
|
"Dual ISDN",
|
||||||
|
"Cable/DSL",
|
||||||
|
"T1/LAN",
|
||||||
|
"User defined",
|
||||||
|
0
|
||||||
|
};
|
||||||
|
static const char *rate_values[] =
|
||||||
|
{
|
||||||
|
"2500",
|
||||||
|
"3200",
|
||||||
|
"5000",
|
||||||
|
"10000",
|
||||||
|
"15000",
|
||||||
|
"25000",
|
||||||
|
UI_ITEMVALUE_WILDCARD,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
// if (ui_numplayermodels == 0)
|
|
||||||
if ( !UI_HaveValidPlayerModels(NULL) )
|
if ( !UI_HaveValidPlayerModels(NULL) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -134,80 +146,77 @@ qboolean Menu_PlayerConfig_Init (void)
|
||||||
s_playerconfig_name_field.length = 20;
|
s_playerconfig_name_field.length = 20;
|
||||||
s_playerconfig_name_field.visible_length = 20;
|
s_playerconfig_name_field.visible_length = 20;
|
||||||
Q_strncpyz (s_playerconfig_name_field.buffer, sizeof(s_playerconfig_name_field.buffer), Cvar_VariableString("name"));
|
Q_strncpyz (s_playerconfig_name_field.buffer, sizeof(s_playerconfig_name_field.buffer), Cvar_VariableString("name"));
|
||||||
s_playerconfig_name_field.cursor = (int)strlen( s_playerconfig_name_field.buffer );
|
s_playerconfig_name_field.cursor = (int)strlen(s_playerconfig_name_field.buffer);
|
||||||
|
|
||||||
s_playerconfig_model_title.generic.type = MTYPE_SEPARATOR;
|
s_playerconfig_model_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_playerconfig_model_title.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_model_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_model_title.generic.flags = QMF_LEFT_JUSTIFY;
|
s_playerconfig_model_title.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_playerconfig_model_title.generic.name = "model";
|
s_playerconfig_model_title.generic.name = "model";
|
||||||
s_playerconfig_model_title.generic.x = -MENU_FONT_SIZE;
|
s_playerconfig_model_title.generic.x = -2*MENU_FONT_SIZE;
|
||||||
s_playerconfig_model_title.generic.y = y += 3*MENU_LINE_SIZE;
|
s_playerconfig_model_title.generic.y = y += 3*MENU_LINE_SIZE;
|
||||||
|
|
||||||
s_playerconfig_model_box.generic.type = MTYPE_SPINCONTROL;
|
s_playerconfig_model_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_playerconfig_model_box.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_model_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_model_box.generic.x = -7*MENU_FONT_SIZE;
|
s_playerconfig_model_box.generic.x = -8*MENU_FONT_SIZE;
|
||||||
s_playerconfig_model_box.generic.y = y += MENU_LINE_SIZE;
|
s_playerconfig_model_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_playerconfig_model_box.generic.callback = Menu_PlayerModelCallback;
|
s_playerconfig_model_box.generic.callback = Menu_PlayerModelCallback;
|
||||||
s_playerconfig_model_box.generic.cursor_offset = -6*MENU_FONT_SIZE;
|
s_playerconfig_model_box.generic.cursor_offset = -1*MENU_FONT_SIZE;
|
||||||
s_playerconfig_model_box.curvalue = mNum;
|
s_playerconfig_model_box.curValue = mNum;
|
||||||
s_playerconfig_model_box.itemnames = ui_pmnames;
|
s_playerconfig_model_box.itemNames = ui_pmnames;
|
||||||
|
|
||||||
s_playerconfig_skin_title.generic.type = MTYPE_SEPARATOR;
|
s_playerconfig_skin_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_playerconfig_skin_title.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_skin_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_skin_title.generic.flags = QMF_LEFT_JUSTIFY;
|
s_playerconfig_skin_title.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_playerconfig_skin_title.generic.name = "skin";
|
s_playerconfig_skin_title.generic.name = "skin";
|
||||||
s_playerconfig_skin_title.generic.x = -2*MENU_FONT_SIZE;
|
s_playerconfig_skin_title.generic.x = -3*MENU_FONT_SIZE;
|
||||||
s_playerconfig_skin_title.generic.y = y += 2*MENU_LINE_SIZE;
|
s_playerconfig_skin_title.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
|
|
||||||
s_playerconfig_skin_box.generic.type = MTYPE_SPINCONTROL;
|
s_playerconfig_skin_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_playerconfig_skin_box.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_skin_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_skin_box.generic.x = -7*MENU_FONT_SIZE;
|
s_playerconfig_skin_box.generic.x = -8*MENU_FONT_SIZE;
|
||||||
s_playerconfig_skin_box.generic.y = y += MENU_LINE_SIZE;
|
s_playerconfig_skin_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_playerconfig_skin_box.generic.name = 0;
|
s_playerconfig_skin_box.generic.name = 0;
|
||||||
s_playerconfig_skin_box.generic.callback = Menu_PlayerSkinCallback; // Knightmare added, was 0
|
s_playerconfig_skin_box.generic.callback = Menu_PlayerSkinCallback; // Knightmare added, was 0
|
||||||
s_playerconfig_skin_box.generic.cursor_offset = -6*MENU_FONT_SIZE;
|
s_playerconfig_skin_box.generic.cursor_offset = -1*MENU_FONT_SIZE;
|
||||||
s_playerconfig_skin_box.curvalue = sNum;
|
s_playerconfig_skin_box.curValue = sNum;
|
||||||
s_playerconfig_skin_box.itemnames = ui_pmi[mNum].skinDisplayNames;
|
s_playerconfig_skin_box.itemNames = ui_pmi[mNum].skinDisplayNames;
|
||||||
s_playerconfig_skin_box.generic.flags |= QMF_SKINLIST;
|
s_playerconfig_skin_box.generic.flags |= QMF_SKINLIST;
|
||||||
|
|
||||||
s_playerconfig_hand_title.generic.type = MTYPE_SEPARATOR;
|
s_playerconfig_hand_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_playerconfig_hand_title.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_hand_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_hand_title.generic.flags = QMF_LEFT_JUSTIFY;
|
s_playerconfig_hand_title.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_playerconfig_hand_title.generic.name = "handedness";
|
s_playerconfig_hand_title.generic.name = "handedness";
|
||||||
s_playerconfig_hand_title.generic.x = 4*MENU_FONT_SIZE;
|
s_playerconfig_hand_title.generic.x = 3*MENU_FONT_SIZE;
|
||||||
s_playerconfig_hand_title.generic.y = y += 2*MENU_LINE_SIZE;
|
s_playerconfig_hand_title.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
|
|
||||||
s_playerconfig_handedness_box.generic.type = MTYPE_SPINCONTROL;
|
s_playerconfig_handedness_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_playerconfig_handedness_box.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_handedness_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_handedness_box.generic.x = -7*MENU_FONT_SIZE;
|
s_playerconfig_handedness_box.generic.x = -8*MENU_FONT_SIZE;
|
||||||
s_playerconfig_handedness_box.generic.y = y += MENU_LINE_SIZE;
|
s_playerconfig_handedness_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_playerconfig_handedness_box.generic.name = 0;
|
s_playerconfig_handedness_box.generic.name = 0;
|
||||||
s_playerconfig_handedness_box.generic.cursor_offset = -6*MENU_FONT_SIZE;
|
s_playerconfig_handedness_box.generic.cursor_offset = -1*MENU_FONT_SIZE;
|
||||||
s_playerconfig_handedness_box.generic.callback = HandednessCallback;
|
s_playerconfig_handedness_box.generic.callback = HandednessCallback;
|
||||||
s_playerconfig_handedness_box.curvalue = Cvar_VariableValue( "hand" );
|
s_playerconfig_handedness_box.itemNames = handedness_names;
|
||||||
s_playerconfig_handedness_box.itemnames = handedness_names;
|
UI_MenuSpinControl_SetValue (&s_playerconfig_handedness_box, "hand", 0, 2, true);
|
||||||
|
|
||||||
for (i = 0; i < sizeof(rate_tbl) / sizeof(*rate_tbl) - 1; i++)
|
|
||||||
if (Cvar_VariableValue("rate") == rate_tbl[i])
|
|
||||||
break;
|
|
||||||
|
|
||||||
s_playerconfig_rate_title.generic.type = MTYPE_SEPARATOR;
|
s_playerconfig_rate_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_playerconfig_rate_title.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_rate_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_rate_title.generic.flags = QMF_LEFT_JUSTIFY;
|
s_playerconfig_rate_title.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_playerconfig_rate_title.generic.name = "connect speed";
|
s_playerconfig_rate_title.generic.name = "connect speed";
|
||||||
s_playerconfig_rate_title.generic.x = 7*MENU_FONT_SIZE;
|
s_playerconfig_rate_title.generic.x = 6*MENU_FONT_SIZE;
|
||||||
s_playerconfig_rate_title.generic.y = y += 2*MENU_LINE_SIZE;
|
s_playerconfig_rate_title.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
|
|
||||||
s_playerconfig_rate_box.generic.type = MTYPE_SPINCONTROL;
|
s_playerconfig_rate_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_playerconfig_rate_box.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_rate_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_rate_box.generic.x = -7*MENU_FONT_SIZE;
|
s_playerconfig_rate_box.generic.x = -8*MENU_FONT_SIZE;
|
||||||
s_playerconfig_rate_box.generic.y = y += MENU_LINE_SIZE;
|
s_playerconfig_rate_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_playerconfig_rate_box.generic.name = 0;
|
s_playerconfig_rate_box.generic.name = 0;
|
||||||
s_playerconfig_rate_box.generic.cursor_offset = -6*MENU_FONT_SIZE;
|
s_playerconfig_rate_box.generic.cursor_offset = -1*MENU_FONT_SIZE;
|
||||||
s_playerconfig_rate_box.generic.callback = RateCallback;
|
s_playerconfig_rate_box.generic.callback = RateCallback;
|
||||||
s_playerconfig_rate_box.curvalue = i;
|
s_playerconfig_rate_box.itemNames = rate_names;
|
||||||
s_playerconfig_rate_box.itemnames = rate_names;
|
s_playerconfig_rate_box.itemValues = rate_values;
|
||||||
|
UI_MenuSpinControl_SetValue (&s_playerconfig_rate_box, "rate", 0, 0, false);
|
||||||
|
|
||||||
s_playerconfig_back_action.generic.type = MTYPE_ACTION;
|
s_playerconfig_back_action.generic.type = MTYPE_ACTION;
|
||||||
s_playerconfig_back_action.generic.textSize = MENU_FONT_SIZE;
|
s_playerconfig_back_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_playerconfig_back_action.generic.name = "back to multiplayer";
|
s_playerconfig_back_action.generic.name = "back to multiplayer";
|
||||||
|
@ -220,7 +229,7 @@ qboolean Menu_PlayerConfig_Init (void)
|
||||||
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_name_field);
|
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_name_field);
|
||||||
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_model_title);
|
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_model_title);
|
||||||
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_model_box);
|
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_model_box);
|
||||||
if ( s_playerconfig_skin_box.itemnames )
|
if ( s_playerconfig_skin_box.itemNames )
|
||||||
{
|
{
|
||||||
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_skin_title);
|
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_skin_title);
|
||||||
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_skin_box);
|
UI_AddMenuItem (&s_player_config_menu, &s_playerconfig_skin_box);
|
||||||
|
@ -252,13 +261,13 @@ qboolean Menu_PlayerConfig_CheckIncrement (int dir, float x, float y, float w, f
|
||||||
{
|
{
|
||||||
if (dir) // dir == 1 is left
|
if (dir) // dir == 1 is left
|
||||||
{
|
{
|
||||||
if (s_playerconfig_skin_box.curvalue > 0)
|
if (s_playerconfig_skin_box.curValue > 0)
|
||||||
s_playerconfig_skin_box.curvalue--;
|
s_playerconfig_skin_box.curValue--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (s_playerconfig_skin_box.curvalue < ui_pmi[s_playerconfig_model_box.curvalue].nskins)
|
if (s_playerconfig_skin_box.curValue < ui_pmi[s_playerconfig_model_box.curValue].nskins)
|
||||||
s_playerconfig_skin_box.curvalue++;
|
s_playerconfig_skin_box.curValue++;
|
||||||
}
|
}
|
||||||
|
|
||||||
sound = menu_move_sound;
|
sound = menu_move_sound;
|
||||||
|
@ -287,12 +296,12 @@ void Menu_PlayerConfig_MouseClick (void)
|
||||||
for (i=0; i<NUM_SKINBOX_ITEMS; i++)
|
for (i=0; i<NUM_SKINBOX_ITEMS; i++)
|
||||||
buttons[i].index =- 1;
|
buttons[i].index =- 1;
|
||||||
|
|
||||||
if ( (ui_pmi[s_playerconfig_model_box.curvalue].nskins < NUM_SKINBOX_ITEMS) || (s_playerconfig_skin_box.curvalue < 4) )
|
if ( (ui_pmi[s_playerconfig_model_box.curValue].nskins < NUM_SKINBOX_ITEMS) || (s_playerconfig_skin_box.curValue < 4) )
|
||||||
i = 0;
|
i = 0;
|
||||||
else if (s_playerconfig_skin_box.curvalue > ui_pmi[s_playerconfig_model_box.curvalue].nskins-4)
|
else if (s_playerconfig_skin_box.curValue > ui_pmi[s_playerconfig_model_box.curValue].nskins-4)
|
||||||
i = ui_pmi[s_playerconfig_model_box.curvalue].nskins-NUM_SKINBOX_ITEMS;
|
i = ui_pmi[s_playerconfig_model_box.curValue].nskins-NUM_SKINBOX_ITEMS;
|
||||||
else
|
else
|
||||||
i = s_playerconfig_skin_box.curvalue-3;
|
i = s_playerconfig_skin_box.curValue-3;
|
||||||
|
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
if (Menu_PlayerConfig_CheckIncrement (1, icon_x-39, icon_y, 32, 32))
|
if (Menu_PlayerConfig_CheckIncrement (1, icon_x-39, icon_y, 32, 32))
|
||||||
|
@ -300,7 +309,7 @@ void Menu_PlayerConfig_MouseClick (void)
|
||||||
|
|
||||||
for (count=0; count<NUM_SKINBOX_ITEMS; i++,count++)
|
for (count=0; count<NUM_SKINBOX_ITEMS; i++,count++)
|
||||||
{
|
{
|
||||||
if ( (i < 0) || (i >= ui_pmi[s_playerconfig_model_box.curvalue].nskins) )
|
if ( (i < 0) || (i >= ui_pmi[s_playerconfig_model_box.curValue].nskins) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
UI_AddButton (&buttons[count], i, icon_x+icon_offset, icon_y, 32, 32);
|
UI_AddButton (&buttons[count], i, icon_x+icon_offset, icon_y, 32, 32);
|
||||||
|
@ -308,7 +317,7 @@ void Menu_PlayerConfig_MouseClick (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
icon_offset = NUM_SKINBOX_ITEMS*34;
|
icon_offset = NUM_SKINBOX_ITEMS*34;
|
||||||
if (ui_pmi[s_playerconfig_model_box.curvalue].nskins-i > 0)
|
if (ui_pmi[s_playerconfig_model_box.curValue].nskins-i > 0)
|
||||||
if (Menu_PlayerConfig_CheckIncrement (0, icon_x+icon_offset+5, icon_y, 32, 32))
|
if (Menu_PlayerConfig_CheckIncrement (0, icon_x+icon_offset+5, icon_y, 32, 32))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -322,7 +331,7 @@ void Menu_PlayerConfig_MouseClick (void)
|
||||||
{
|
{
|
||||||
if (!ui_mousecursor.buttonused[MOUSEBUTTON1] && ui_mousecursor.buttonclicks[MOUSEBUTTON1]==1)
|
if (!ui_mousecursor.buttonused[MOUSEBUTTON1] && ui_mousecursor.buttonclicks[MOUSEBUTTON1]==1)
|
||||||
{
|
{
|
||||||
s_playerconfig_skin_box.curvalue = buttons[i].index;
|
s_playerconfig_skin_box.curValue = buttons[i].index;
|
||||||
|
|
||||||
sound = menu_move_sound;
|
sound = menu_move_sound;
|
||||||
ui_mousecursor.buttonused[MOUSEBUTTON1] = true;
|
ui_mousecursor.buttonused[MOUSEBUTTON1] = true;
|
||||||
|
@ -355,12 +364,12 @@ void Menu_PlayerConfig_DrawSkinSelection (void)
|
||||||
Vector4Copy (stCoord_arrow_left, arrowTemp[0]);
|
Vector4Copy (stCoord_arrow_left, arrowTemp[0]);
|
||||||
Vector4Copy (stCoord_arrow_right, arrowTemp[1]);
|
Vector4Copy (stCoord_arrow_right, arrowTemp[1]);
|
||||||
|
|
||||||
if ( (ui_pmi[s_playerconfig_model_box.curvalue].nskins < NUM_SKINBOX_ITEMS) || (s_playerconfig_skin_box.curvalue < 4) )
|
if ( (ui_pmi[s_playerconfig_model_box.curValue].nskins < NUM_SKINBOX_ITEMS) || (s_playerconfig_skin_box.curValue < 4) )
|
||||||
i = 0;
|
i = 0;
|
||||||
else if ( s_playerconfig_skin_box.curvalue > (ui_pmi[s_playerconfig_model_box.curvalue].nskins - 4) )
|
else if ( s_playerconfig_skin_box.curValue > (ui_pmi[s_playerconfig_model_box.curValue].nskins - 4) )
|
||||||
i = ui_pmi[s_playerconfig_model_box.curvalue].nskins-NUM_SKINBOX_ITEMS;
|
i = ui_pmi[s_playerconfig_model_box.curValue].nskins-NUM_SKINBOX_ITEMS;
|
||||||
else
|
else
|
||||||
i = s_playerconfig_skin_box.curvalue - 3;
|
i = s_playerconfig_skin_box.curValue - 3;
|
||||||
|
|
||||||
// left arrow
|
// left arrow
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
|
@ -389,14 +398,14 @@ void Menu_PlayerConfig_DrawSkinSelection (void)
|
||||||
|
|
||||||
for (count=0; count<NUM_SKINBOX_ITEMS; i++,count++)
|
for (count=0; count<NUM_SKINBOX_ITEMS; i++,count++)
|
||||||
{
|
{
|
||||||
if ( (i < 0) || (i >= ui_pmi[s_playerconfig_model_box.curvalue].nskins) )
|
if ( (i < 0) || (i >= ui_pmi[s_playerconfig_model_box.curValue].nskins) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Com_sprintf (scratch, sizeof(scratch), "/players/%s/%s_i.pcx",
|
Com_sprintf (scratch, sizeof(scratch), "/players/%s/%s_i.pcx",
|
||||||
ui_pmi[s_playerconfig_model_box.curvalue].directory,
|
ui_pmi[s_playerconfig_model_box.curValue].directory,
|
||||||
ui_pmi[s_playerconfig_model_box.curvalue].skinDisplayNames[i] );
|
ui_pmi[s_playerconfig_model_box.curValue].skinDisplayNames[i] );
|
||||||
|
|
||||||
if (i == s_playerconfig_skin_box.curvalue)
|
if (i == s_playerconfig_skin_box.curValue)
|
||||||
UI_DrawFill (icon_x + icon_offset-1, icon_y-1, 34, 34, ALIGN_CENTER, false, color[0], color[1] ,color[2], 255);
|
UI_DrawFill (icon_x + icon_offset-1, icon_y-1, 34, 34, ALIGN_CENTER, false, color[0], color[1] ,color[2], 255);
|
||||||
UI_DrawPic (icon_x + icon_offset, icon_y, 32, 32, ALIGN_CENTER, false, scratch, 1.0);
|
UI_DrawPic (icon_x + icon_offset, icon_y, 32, 32, ALIGN_CENTER, false, scratch, 1.0);
|
||||||
icon_offset += 34;
|
icon_offset += 34;
|
||||||
|
@ -404,7 +413,7 @@ void Menu_PlayerConfig_DrawSkinSelection (void)
|
||||||
|
|
||||||
// right arrow
|
// right arrow
|
||||||
icon_offset = NUM_SKINBOX_ITEMS*34;
|
icon_offset = NUM_SKINBOX_ITEMS*34;
|
||||||
if ( ui_pmi[s_playerconfig_model_box.curvalue].nskins-i > 0 ) {
|
if ( ui_pmi[s_playerconfig_model_box.curValue].nskins-i > 0 ) {
|
||||||
Vector4Set (arrowColor, color[0], color[1], color[2], 255);
|
Vector4Set (arrowColor, color[0], color[1], color[2], 255);
|
||||||
// Com_sprintf (scratch, sizeof(scratch), "/gfx/ui/arrows/arrow_right.pcx");
|
// Com_sprintf (scratch, sizeof(scratch), "/gfx/ui/arrows/arrow_right.pcx");
|
||||||
}
|
}
|
||||||
|
@ -438,7 +447,7 @@ void Menu_PlayerConfig_Draw (void)
|
||||||
refdef.fov_y = CalcFov (refdef.fov_x, refdef.width, refdef.height);
|
refdef.fov_y = CalcFov (refdef.fov_x, refdef.width, refdef.height);
|
||||||
refdef.time = cls.realtime*0.001;
|
refdef.time = cls.realtime*0.001;
|
||||||
|
|
||||||
if ( ui_pmi[s_playerconfig_model_box.curvalue].skinDisplayNames )
|
if ( ui_pmi[s_playerconfig_model_box.curValue].skinDisplayNames )
|
||||||
{
|
{
|
||||||
int yaw;
|
int yaw;
|
||||||
int maxframe = 29;
|
int maxframe = 29;
|
||||||
|
@ -527,8 +536,8 @@ void Menu_PConfigSaveChanges (void)
|
||||||
|
|
||||||
Cvar_Set ("name", s_playerconfig_name_field.buffer);
|
Cvar_Set ("name", s_playerconfig_name_field.buffer);
|
||||||
|
|
||||||
mNum = s_playerconfig_model_box.curvalue;
|
mNum = s_playerconfig_model_box.curValue;
|
||||||
sNum = s_playerconfig_skin_box.curvalue;
|
sNum = s_playerconfig_skin_box.curValue;
|
||||||
Com_sprintf (scratch, sizeof( scratch ), "%s/%s",
|
Com_sprintf (scratch, sizeof( scratch ), "%s/%s",
|
||||||
ui_pmi[mNum].directory, ui_pmi[mNum].skinDisplayNames[sNum]);
|
ui_pmi[mNum].directory, ui_pmi[mNum].skinDisplayNames[sNum]);
|
||||||
Cvar_Set ("skin", scratch);
|
Cvar_Set ("skin", scratch);
|
||||||
|
|
|
@ -55,10 +55,10 @@ static menuaction_s s_startserver_back_action;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
===============
|
===============
|
||||||
Menu_RefreshMapList
|
M_RefreshMapList
|
||||||
===============
|
===============
|
||||||
*/
|
*/
|
||||||
void Menu_RefreshMapList (maptype_t maptype)
|
void M_RefreshMapList (maptype_t maptype)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -69,31 +69,31 @@ void Menu_RefreshMapList (maptype_t maptype)
|
||||||
UI_UpdateMapList (maptype);
|
UI_UpdateMapList (maptype);
|
||||||
|
|
||||||
// reset startmap if it's in the part of the list that changed
|
// reset startmap if it's in the part of the list that changed
|
||||||
if (s_startmap_list.curvalue >= ui_svr_listfile_nummaps)
|
if (s_startmap_list.curValue >= ui_svr_listfile_nummaps)
|
||||||
s_startmap_list.curvalue = 0;
|
s_startmap_list.curValue = 0;
|
||||||
|
|
||||||
s_startmap_list.itemnames = ui_svr_mapnames;
|
s_startmap_list.itemNames = ui_svr_mapnames;
|
||||||
for (i=0; s_startmap_list.itemnames[i]; i++);
|
for (i=0; s_startmap_list.itemNames[i]; i++);
|
||||||
s_startmap_list.numitemnames = i;
|
s_startmap_list.numItems = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
void DMOptionsFunc (void *self)
|
void M_DMOptionsFunc (void *self)
|
||||||
{
|
{
|
||||||
if (s_rules_box.curvalue == 1)
|
if (s_rules_box.curValue == 1)
|
||||||
return;
|
return;
|
||||||
Menu_DMOptions_f ();
|
Menu_DMOptions_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RulesChangeFunc (void *self)
|
void M_RulesChangeFunc (void *self)
|
||||||
{
|
{
|
||||||
maptype_t maptype = MAP_DM;
|
maptype_t maptype = MAP_DM;
|
||||||
|
|
||||||
UI_SetCoopMenuMode (false);
|
UI_SetCoopMenuMode (false);
|
||||||
UI_SetCTFMenuMode (false);
|
UI_SetCTFMenuMode (false);
|
||||||
if (s_rules_box.curvalue == 0) // DM
|
if (s_rules_box.curValue == 0) // DM
|
||||||
{
|
{
|
||||||
s_maxclients_field.generic.statusbar = NULL;
|
s_maxclients_field.generic.statusbar = NULL;
|
||||||
if (atoi(s_maxclients_field.buffer) <= 8) // set default of 8
|
if (atoi(s_maxclients_field.buffer) <= 8) // set default of 8
|
||||||
|
@ -102,7 +102,7 @@ void RulesChangeFunc (void *self)
|
||||||
s_startserver_dmoptions_action.generic.statusbar = NULL;
|
s_startserver_dmoptions_action.generic.statusbar = NULL;
|
||||||
maptype = MAP_DM;
|
maptype = MAP_DM;
|
||||||
}
|
}
|
||||||
else if (s_rules_box.curvalue == 1) // coop // PGM
|
else if (s_rules_box.curValue == 1) // coop // PGM
|
||||||
{
|
{
|
||||||
s_maxclients_field.generic.statusbar = "4 maximum for cooperative";
|
s_maxclients_field.generic.statusbar = "4 maximum for cooperative";
|
||||||
if (atoi(s_maxclients_field.buffer) > 4)
|
if (atoi(s_maxclients_field.buffer) > 4)
|
||||||
|
@ -112,7 +112,7 @@ void RulesChangeFunc (void *self)
|
||||||
maptype = MAP_COOP;
|
maptype = MAP_COOP;
|
||||||
UI_SetCoopMenuMode (true);
|
UI_SetCoopMenuMode (true);
|
||||||
}
|
}
|
||||||
else if (s_rules_box.curvalue == 2) // CTF
|
else if (s_rules_box.curValue == 2) // CTF
|
||||||
{
|
{
|
||||||
s_maxclients_field.generic.statusbar = NULL;
|
s_maxclients_field.generic.statusbar = NULL;
|
||||||
if (atoi(s_maxclients_field.buffer) <= 12) // set default of 12
|
if (atoi(s_maxclients_field.buffer) <= 12) // set default of 12
|
||||||
|
@ -122,7 +122,7 @@ void RulesChangeFunc (void *self)
|
||||||
maptype = MAP_CTF;
|
maptype = MAP_CTF;
|
||||||
UI_SetCTFMenuMode (true);
|
UI_SetCTFMenuMode (true);
|
||||||
}
|
}
|
||||||
else if (s_rules_box.curvalue == 3) // 3Team CTF
|
else if (s_rules_box.curValue == 3) // 3Team CTF
|
||||||
{
|
{
|
||||||
s_maxclients_field.generic.statusbar = NULL;
|
s_maxclients_field.generic.statusbar = NULL;
|
||||||
if (atoi(s_maxclients_field.buffer) <= 18) // set default of 18
|
if (atoi(s_maxclients_field.buffer) <= 18) // set default of 18
|
||||||
|
@ -133,7 +133,7 @@ void RulesChangeFunc (void *self)
|
||||||
UI_SetCTFMenuMode (true);
|
UI_SetCTFMenuMode (true);
|
||||||
}
|
}
|
||||||
// ROGUE GAMES
|
// ROGUE GAMES
|
||||||
else if (FS_RoguePath() && s_rules_box.curvalue == 4) // tag
|
else if (FS_RoguePath() && s_rules_box.curValue == 4) // tag
|
||||||
{
|
{
|
||||||
s_maxclients_field.generic.statusbar = NULL;
|
s_maxclients_field.generic.statusbar = NULL;
|
||||||
if (atoi(s_maxclients_field.buffer) <= 8) // set default of 8
|
if (atoi(s_maxclients_field.buffer) <= 8) // set default of 8
|
||||||
|
@ -143,7 +143,7 @@ void RulesChangeFunc (void *self)
|
||||||
maptype = MAP_DM;
|
maptype = MAP_DM;
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu_RefreshMapList (maptype);
|
M_RefreshMapList (maptype);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_StartServerActionFunc (void *self)
|
void Menu_StartServerActionFunc (void *self)
|
||||||
|
@ -153,7 +153,7 @@ void Menu_StartServerActionFunc (void *self)
|
||||||
int fraglimit;
|
int fraglimit;
|
||||||
int maxclients;
|
int maxclients;
|
||||||
|
|
||||||
Q_strncpyz (startmap, sizeof(startmap), strchr( ui_svr_mapnames[s_startmap_list.curvalue], '\n' ) + 1);
|
Q_strncpyz (startmap, sizeof(startmap), strchr( ui_svr_mapnames[s_startmap_list.curValue], '\n' ) + 1);
|
||||||
|
|
||||||
maxclients = atoi( s_maxclients_field.buffer );
|
maxclients = atoi( s_maxclients_field.buffer );
|
||||||
timelimit = atoi( s_timelimit_field.buffer );
|
timelimit = atoi( s_timelimit_field.buffer );
|
||||||
|
@ -164,13 +164,13 @@ void Menu_StartServerActionFunc (void *self)
|
||||||
Cvar_SetValue ("fraglimit", ClampCvar( 0, fraglimit, fraglimit ) );
|
Cvar_SetValue ("fraglimit", ClampCvar( 0, fraglimit, fraglimit ) );
|
||||||
Cvar_Set("hostname", s_hostname_field.buffer );
|
Cvar_Set("hostname", s_hostname_field.buffer );
|
||||||
|
|
||||||
Cvar_SetValue ("deathmatch", s_rules_box.curvalue != 1);
|
Cvar_SetValue ("deathmatch", s_rules_box.curValue != 1);
|
||||||
Cvar_SetValue ("coop", s_rules_box.curvalue == 1);
|
Cvar_SetValue ("coop", s_rules_box.curValue == 1);
|
||||||
Cvar_SetValue ("ctf", s_rules_box.curvalue == 2);
|
Cvar_SetValue ("ctf", s_rules_box.curValue == 2);
|
||||||
Cvar_SetValue ("ttctf", s_rules_box.curvalue == 3);
|
Cvar_SetValue ("ttctf", s_rules_box.curValue == 3);
|
||||||
Cvar_SetValue ("gamerules", FS_RoguePath() ? ((s_rules_box.curvalue == 4) ? 2 : 0) : 0);
|
Cvar_SetValue ("gamerules", FS_RoguePath() ? ((s_rules_box.curValue == 4) ? 2 : 0) : 0);
|
||||||
|
|
||||||
UI_StartServer (startmap, (s_dedicated_box.curvalue != 0));
|
UI_StartServer (startmap, (s_dedicated_box.curValue != 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_StartServer_Init (void)
|
void Menu_StartServer_Init (void)
|
||||||
|
@ -213,7 +213,7 @@ void Menu_StartServer_Init (void)
|
||||||
s_startmap_list.generic.x = 0;
|
s_startmap_list.generic.x = 0;
|
||||||
s_startmap_list.generic.y = y;
|
s_startmap_list.generic.y = y;
|
||||||
s_startmap_list.generic.name = "initial map";
|
s_startmap_list.generic.name = "initial map";
|
||||||
s_startmap_list.itemnames = ui_svr_mapnames;
|
s_startmap_list.itemNames = ui_svr_mapnames;
|
||||||
|
|
||||||
s_rules_box.generic.type = MTYPE_SPINCONTROL;
|
s_rules_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_rules_box.generic.textSize = MENU_FONT_SIZE;
|
s_rules_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -222,21 +222,21 @@ void Menu_StartServer_Init (void)
|
||||||
s_rules_box.generic.name = "rules";
|
s_rules_box.generic.name = "rules";
|
||||||
//PGM - rogue games only available with rogue DLL.
|
//PGM - rogue games only available with rogue DLL.
|
||||||
if ( FS_RoguePath() )
|
if ( FS_RoguePath() )
|
||||||
s_rules_box.itemnames = dm_coop_names_rogue;
|
s_rules_box.itemNames = dm_coop_names_rogue;
|
||||||
else
|
else
|
||||||
s_rules_box.itemnames = dm_coop_names;
|
s_rules_box.itemNames = dm_coop_names;
|
||||||
//PGM
|
//PGM
|
||||||
if (Cvar_VariableValue("ttctf"))
|
if (Cvar_VariableValue("ttctf"))
|
||||||
s_rules_box.curvalue = 3;
|
s_rules_box.curValue = 3;
|
||||||
else if (Cvar_VariableValue("ctf"))
|
else if (Cvar_VariableValue("ctf"))
|
||||||
s_rules_box.curvalue = 2;
|
s_rules_box.curValue = 2;
|
||||||
else if (FS_RoguePath() && Cvar_VariableValue("gamerules") == 2)
|
else if (FS_RoguePath() && Cvar_VariableValue("gamerules") == 2)
|
||||||
s_rules_box.curvalue = 4;
|
s_rules_box.curValue = 4;
|
||||||
else if (Cvar_VariableValue("coop"))
|
else if (Cvar_VariableValue("coop"))
|
||||||
s_rules_box.curvalue = 1;
|
s_rules_box.curValue = 1;
|
||||||
else
|
else
|
||||||
s_rules_box.curvalue = 0;
|
s_rules_box.curValue = 0;
|
||||||
s_rules_box.generic.callback = RulesChangeFunc;
|
s_rules_box.generic.callback = M_RulesChangeFunc;
|
||||||
|
|
||||||
s_timelimit_field.generic.type = MTYPE_FIELD;
|
s_timelimit_field.generic.type = MTYPE_FIELD;
|
||||||
s_timelimit_field.generic.textSize = MENU_FONT_SIZE;
|
s_timelimit_field.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -300,9 +300,9 @@ void Menu_StartServer_Init (void)
|
||||||
s_dedicated_box.generic.name = "dedicated server";;
|
s_dedicated_box.generic.name = "dedicated server";;
|
||||||
s_dedicated_box.generic.x = 0;
|
s_dedicated_box.generic.x = 0;
|
||||||
s_dedicated_box.generic.y = y += 2*MENU_FONT_SIZE;
|
s_dedicated_box.generic.y = y += 2*MENU_FONT_SIZE;
|
||||||
s_dedicated_box.curvalue = 0; // always start off
|
s_dedicated_box.curValue = 0; // always start off
|
||||||
s_dedicated_box.generic.statusbar = "makes the server faster, but you can't play on this computer";
|
s_dedicated_box.generic.statusbar = "makes the server faster, but you can't play on this computer";
|
||||||
s_dedicated_box.itemnames = yesno_names;
|
s_dedicated_box.itemNames = yesno_names;
|
||||||
|
|
||||||
s_startserver_dmoptions_action.generic.type = MTYPE_ACTION;
|
s_startserver_dmoptions_action.generic.type = MTYPE_ACTION;
|
||||||
s_startserver_dmoptions_action.generic.textSize = MENU_FONT_SIZE;
|
s_startserver_dmoptions_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -311,7 +311,7 @@ void Menu_StartServer_Init (void)
|
||||||
s_startserver_dmoptions_action.generic.x = 24;
|
s_startserver_dmoptions_action.generic.x = 24;
|
||||||
s_startserver_dmoptions_action.generic.y = y += 2*MENU_FONT_SIZE;
|
s_startserver_dmoptions_action.generic.y = y += 2*MENU_FONT_SIZE;
|
||||||
s_startserver_dmoptions_action.generic.statusbar = NULL;
|
s_startserver_dmoptions_action.generic.statusbar = NULL;
|
||||||
s_startserver_dmoptions_action.generic.callback = DMOptionsFunc;
|
s_startserver_dmoptions_action.generic.callback = M_DMOptionsFunc;
|
||||||
|
|
||||||
s_startserver_start_action.generic.type = MTYPE_ACTION;
|
s_startserver_start_action.generic.type = MTYPE_ACTION;
|
||||||
s_startserver_start_action.generic.textSize = MENU_FONT_SIZE;
|
s_startserver_start_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -343,12 +343,12 @@ void Menu_StartServer_Init (void)
|
||||||
UI_CenterMenu (&s_startserver_menu);
|
UI_CenterMenu (&s_startserver_menu);
|
||||||
|
|
||||||
// call this now to set proper inital state
|
// call this now to set proper inital state
|
||||||
RulesChangeFunc (NULL);
|
M_RulesChangeFunc (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_DrawStartSeverLevelshot (void)
|
void Menu_DrawStartSeverLevelshot (void)
|
||||||
{
|
{
|
||||||
char *mapshotname = UI_UpdateStartSeverLevelshot (s_startmap_list.curvalue);
|
char *mapshotname = UI_UpdateStartSeverLevelshot (s_startmap_list.curValue);
|
||||||
|
|
||||||
UI_DrawFill (SCREEN_WIDTH/2+44, SCREEN_HEIGHT/2-70, 244, 184, ALIGN_CENTER, false, 60,60,60,255);
|
UI_DrawFill (SCREEN_WIDTH/2+44, SCREEN_HEIGHT/2-70, 244, 184, ALIGN_CENTER, false, 60,60,60,255);
|
||||||
|
|
||||||
|
|
|
@ -71,48 +71,50 @@ void DownloadOptionsFunc (void *unused)
|
||||||
|
|
||||||
void Menu_Multiplayer_Init (void)
|
void Menu_Multiplayer_Init (void)
|
||||||
{
|
{
|
||||||
s_multiplayer_menu.x = SCREEN_WIDTH*0.5 - 64;
|
int x = 0, y = 0;
|
||||||
// s_multiplayer_menu.y = 0;
|
|
||||||
|
s_multiplayer_menu.x = SCREEN_WIDTH*0.5 - 9*MENU_FONT_SIZE; // -64
|
||||||
|
s_multiplayer_menu.y = SCREEN_HEIGHT*0.5 - 5*MENU_LINE_SIZE; // 0
|
||||||
s_multiplayer_menu.nitems = 0;
|
s_multiplayer_menu.nitems = 0;
|
||||||
|
|
||||||
s_join_network_server_action.generic.type = MTYPE_ACTION;
|
s_join_network_server_action.generic.type = MTYPE_ACTION;
|
||||||
s_join_network_server_action.generic.textSize = MENU_FONT_SIZE;
|
s_join_network_server_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_join_network_server_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_join_network_server_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_join_network_server_action.generic.x = 0;
|
s_join_network_server_action.generic.x = x;
|
||||||
s_join_network_server_action.generic.y = 0;
|
s_join_network_server_action.generic.y = y;
|
||||||
s_join_network_server_action.generic.name = " join network server";
|
s_join_network_server_action.generic.name = "Join Network Server";
|
||||||
s_join_network_server_action.generic.callback = JoinNetworkServerFunc;
|
s_join_network_server_action.generic.callback = JoinNetworkServerFunc;
|
||||||
|
|
||||||
s_start_network_server_action.generic.type = MTYPE_ACTION;
|
s_start_network_server_action.generic.type = MTYPE_ACTION;
|
||||||
s_start_network_server_action.generic.textSize = MENU_FONT_SIZE;
|
s_start_network_server_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_start_network_server_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_start_network_server_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_start_network_server_action.generic.x = 0;
|
s_start_network_server_action.generic.x = x;
|
||||||
s_start_network_server_action.generic.y = 2*MENU_FONT_SIZE;
|
s_start_network_server_action.generic.y = y += 2*MENU_LINE_SIZE; // 2*MENU_FONT_SIZE
|
||||||
s_start_network_server_action.generic.name = " start network server";
|
s_start_network_server_action.generic.name = "Start Network Server";
|
||||||
s_start_network_server_action.generic.callback = StartNetworkServerFunc;
|
s_start_network_server_action.generic.callback = StartNetworkServerFunc;
|
||||||
|
|
||||||
s_player_setup_action.generic.type = MTYPE_ACTION;
|
s_player_setup_action.generic.type = MTYPE_ACTION;
|
||||||
s_player_setup_action.generic.textSize = MENU_FONT_SIZE;
|
s_player_setup_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_player_setup_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_player_setup_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_player_setup_action.generic.x = 0;
|
s_player_setup_action.generic.x = x;
|
||||||
s_player_setup_action.generic.y = 4*MENU_FONT_SIZE;
|
s_player_setup_action.generic.y = y += 2*MENU_LINE_SIZE; // 4*MENU_FONT_SIZE
|
||||||
s_player_setup_action.generic.name = " player setup";
|
s_player_setup_action.generic.name = "Player Setup";
|
||||||
s_player_setup_action.generic.callback = PlayerSetupFunc;
|
s_player_setup_action.generic.callback = PlayerSetupFunc;
|
||||||
|
|
||||||
s_download_options_action.generic.type = MTYPE_ACTION;
|
s_download_options_action.generic.type = MTYPE_ACTION;
|
||||||
s_download_options_action.generic.textSize = MENU_FONT_SIZE;
|
s_download_options_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_download_options_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_download_options_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_download_options_action.generic.x = 0;
|
s_download_options_action.generic.x = x;
|
||||||
s_download_options_action.generic.y = 6*MENU_FONT_SIZE;
|
s_download_options_action.generic.y = y += 2*MENU_LINE_SIZE; // 6*MENU_FONT_SIZE
|
||||||
s_download_options_action.generic.name = " download options";
|
s_download_options_action.generic.name = "Download Options";
|
||||||
s_download_options_action.generic.callback = DownloadOptionsFunc;
|
s_download_options_action.generic.callback = DownloadOptionsFunc;
|
||||||
|
|
||||||
s_backmain_action.generic.type = MTYPE_ACTION;
|
s_backmain_action.generic.type = MTYPE_ACTION;
|
||||||
s_backmain_action.generic.textSize = MENU_FONT_SIZE;
|
s_backmain_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_backmain_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_backmain_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_backmain_action.generic.x = 0;
|
s_backmain_action.generic.x = x;
|
||||||
s_backmain_action.generic.y = 9*MENU_FONT_SIZE;
|
s_backmain_action.generic.y = y += 3*MENU_HEADER_LINE_SIZE; // 9*MENU_FONT_SIZE
|
||||||
s_backmain_action.generic.name = " back to main";
|
s_backmain_action.generic.name = "Back to Main";
|
||||||
s_backmain_action.generic.callback = UI_BackMenu;
|
s_backmain_action.generic.callback = UI_BackMenu;
|
||||||
|
|
||||||
UI_AddMenuItem (&s_multiplayer_menu, (void *) &s_join_network_server_action);
|
UI_AddMenuItem (&s_multiplayer_menu, (void *) &s_join_network_server_action);
|
||||||
|
@ -123,7 +125,7 @@ void Menu_Multiplayer_Init (void)
|
||||||
|
|
||||||
UI_SetMenuStatusBar (&s_multiplayer_menu, NULL);
|
UI_SetMenuStatusBar (&s_multiplayer_menu, NULL);
|
||||||
|
|
||||||
UI_CenterMenu (&s_multiplayer_menu);
|
// UI_CenterMenu (&s_multiplayer_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Menu_Multiplayer_Draw (void)
|
static void Menu_Multiplayer_Draw (void)
|
||||||
|
|
|
@ -45,27 +45,27 @@ static menuaction_s s_options_effects_section;
|
||||||
static menuaction_s s_options_interface_section;
|
static menuaction_s s_options_interface_section;
|
||||||
static menuaction_s s_options_back_action;
|
static menuaction_s s_options_back_action;
|
||||||
|
|
||||||
static void MenuSoundFunc (void *unused)
|
static void M_MenuSoundFunc (void *unused)
|
||||||
{
|
{
|
||||||
Menu_Options_Sound_f ();
|
Menu_Options_Sound_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuControlsFunc (void *unused)
|
static void M_MenuControlsFunc (void *unused)
|
||||||
{
|
{
|
||||||
Menu_Options_Controls_f ();
|
Menu_Options_Controls_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuScreenFunc (void *unused)
|
static void M_MenuScreenFunc (void *unused)
|
||||||
{
|
{
|
||||||
Menu_Options_Screen_f ();
|
Menu_Options_Screen_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuEffectsFunc (void *unused)
|
static void M_MenuEffectsFunc (void *unused)
|
||||||
{
|
{
|
||||||
Menu_Options_Effects_f ();
|
Menu_Options_Effects_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuInterfaceFunc (void *unused)
|
static void M_MenuInterfaceFunc (void *unused)
|
||||||
{
|
{
|
||||||
Menu_Options_Interface_f ();
|
Menu_Options_Interface_f ();
|
||||||
}
|
}
|
||||||
|
@ -74,68 +74,64 @@ static void MenuInterfaceFunc (void *unused)
|
||||||
|
|
||||||
void Menu_Options_Init (void)
|
void Menu_Options_Init (void)
|
||||||
{
|
{
|
||||||
s_options_menu.x = SCREEN_WIDTH*0.5 - 24;
|
int x = 0, y = 0;
|
||||||
s_options_menu.y = SCREEN_HEIGHT*0.5 - 58;
|
|
||||||
|
s_options_menu.x = SCREEN_WIDTH*0.5 - 3*MENU_FONT_SIZE;
|
||||||
|
s_options_menu.y = SCREEN_HEIGHT*0.5 - 5*MENU_LINE_SIZE;
|
||||||
s_options_menu.nitems = 0;
|
s_options_menu.nitems = 0;
|
||||||
|
|
||||||
s_options_sound_section.generic.type = MTYPE_ACTION;
|
s_options_sound_section.generic.type = MTYPE_ACTION;
|
||||||
s_options_sound_section.generic.textSize = MENU_FONT_SIZE;
|
s_options_sound_section.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_options_sound_section.generic.flags = QMF_LEFT_JUSTIFY;
|
s_options_sound_section.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_options_sound_section.generic.name = " sound";
|
s_options_sound_section.generic.name = "Sound";
|
||||||
s_options_sound_section.generic.x = 0;
|
s_options_sound_section.generic.x = x;
|
||||||
s_options_sound_section.generic.y = MENU_FONT_SIZE * 2;
|
s_options_sound_section.generic.y = y; // MENU_FONT_SIZE * 2
|
||||||
s_options_sound_section.generic.callback = MenuSoundFunc;
|
s_options_sound_section.generic.callback = M_MenuSoundFunc;
|
||||||
s_options_sound_section.generic.statusbar = "change sound settings";
|
s_options_sound_section.generic.statusbar = "change sound settings";
|
||||||
// s_options_sound_section.generic.cursor_offset = -(MENU_FONT_SIZE*10);
|
|
||||||
|
|
||||||
s_options_controls_section.generic.type = MTYPE_ACTION;
|
s_options_controls_section.generic.type = MTYPE_ACTION;
|
||||||
s_options_controls_section.generic.textSize = MENU_FONT_SIZE;
|
s_options_controls_section.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_options_controls_section.generic.flags = QMF_LEFT_JUSTIFY;
|
s_options_controls_section.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_options_controls_section.generic.name = " controls";
|
s_options_controls_section.generic.name = "Controls";
|
||||||
s_options_controls_section.generic.x = 0;
|
s_options_controls_section.generic.x = x;
|
||||||
s_options_controls_section.generic.y = MENU_FONT_SIZE * 4;
|
s_options_controls_section.generic.y = y += 2*MENU_LINE_SIZE; // MENU_FONT_SIZE * 4
|
||||||
s_options_controls_section.generic.callback = MenuControlsFunc;
|
s_options_controls_section.generic.callback = M_MenuControlsFunc;
|
||||||
s_options_controls_section.generic.statusbar = "change control settings and bind keys";
|
s_options_controls_section.generic.statusbar = "change control settings and bind keys";
|
||||||
// s_options_controls_section.generic.cursor_offset = -(MENU_FONT_SIZE*10);
|
|
||||||
|
|
||||||
s_options_screen_section.generic.type = MTYPE_ACTION;
|
s_options_screen_section.generic.type = MTYPE_ACTION;
|
||||||
s_options_screen_section.generic.textSize = MENU_FONT_SIZE;
|
s_options_screen_section.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_options_screen_section.generic.flags = QMF_LEFT_JUSTIFY;
|
s_options_screen_section.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_options_screen_section.generic.name = " screen";
|
s_options_screen_section.generic.name = "Screen";
|
||||||
s_options_screen_section.generic.x = 0;
|
s_options_screen_section.generic.x = x;
|
||||||
s_options_screen_section.generic.y = MENU_FONT_SIZE * 6;
|
s_options_screen_section.generic.y = y += 2*MENU_LINE_SIZE; // MENU_FONT_SIZE * 6s
|
||||||
s_options_screen_section.generic.callback = MenuScreenFunc;
|
s_options_screen_section.generic.callback = M_MenuScreenFunc;
|
||||||
s_options_screen_section.generic.statusbar = "change HUD/crosshair settings";
|
s_options_screen_section.generic.statusbar = "change HUD/crosshair settings";
|
||||||
// s_options_screen_section.generic.cursor_offset = -(MENU_FONT_SIZE*10);
|
|
||||||
|
|
||||||
s_options_effects_section.generic.type = MTYPE_ACTION;
|
s_options_effects_section.generic.type = MTYPE_ACTION;
|
||||||
s_options_effects_section.generic.textSize = MENU_FONT_SIZE;
|
s_options_effects_section.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_options_effects_section.generic.flags = QMF_LEFT_JUSTIFY;
|
s_options_effects_section.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_options_effects_section.generic.name = " effects";
|
s_options_effects_section.generic.name = "Effects";
|
||||||
s_options_effects_section.generic.x = 0;
|
s_options_effects_section.generic.x = x;
|
||||||
s_options_effects_section.generic.y = MENU_FONT_SIZE * 8;
|
s_options_effects_section.generic.y = y += 2*MENU_LINE_SIZE; // MENU_FONT_SIZE * 8
|
||||||
s_options_effects_section.generic.callback = MenuEffectsFunc;
|
s_options_effects_section.generic.callback = M_MenuEffectsFunc;
|
||||||
s_options_effects_section.generic.statusbar = "change ingame effects settings";
|
s_options_effects_section.generic.statusbar = "change ingame effects settings";
|
||||||
// s_options_effects_section.generic.cursor_offset = -(MENU_FONT_SIZE*10);
|
|
||||||
|
|
||||||
s_options_interface_section.generic.type = MTYPE_ACTION;
|
s_options_interface_section.generic.type = MTYPE_ACTION;
|
||||||
s_options_interface_section.generic.textSize = MENU_FONT_SIZE;
|
s_options_interface_section.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_options_interface_section.generic.flags = QMF_LEFT_JUSTIFY;
|
s_options_interface_section.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_options_interface_section.generic.name = " interface";
|
s_options_interface_section.generic.name = "Interface";
|
||||||
s_options_interface_section.generic.x = 0;
|
s_options_interface_section.generic.x = x;
|
||||||
s_options_interface_section.generic.y = MENU_FONT_SIZE * 10;
|
s_options_interface_section.generic.y = y += 2*MENU_LINE_SIZE; // MENU_FONT_SIZE * 10
|
||||||
s_options_interface_section.generic.callback = MenuInterfaceFunc;
|
s_options_interface_section.generic.callback = M_MenuInterfaceFunc;
|
||||||
s_options_interface_section.generic.statusbar = "change menu/console settings";
|
s_options_interface_section.generic.statusbar = "change menu/console settings";
|
||||||
// s_options_interface_section.generic.cursor_offset = -(MENU_FONT_SIZE*10);
|
|
||||||
|
|
||||||
s_options_back_action.generic.type = MTYPE_ACTION;
|
s_options_back_action.generic.type = MTYPE_ACTION;
|
||||||
s_options_back_action.generic.textSize = MENU_FONT_SIZE;
|
s_options_back_action.generic.textSize = MENU_HEADER_FONT_SIZE;
|
||||||
s_options_back_action.generic.flags = QMF_LEFT_JUSTIFY;
|
s_options_back_action.generic.flags = QMF_LEFT_JUSTIFY;
|
||||||
s_options_back_action.generic.name = " back to main";
|
s_options_back_action.generic.name = "Back to Main";
|
||||||
s_options_back_action.generic.x = 0;
|
s_options_back_action.generic.x = x;
|
||||||
s_options_back_action.generic.y = MENU_FONT_SIZE * 13;
|
s_options_back_action.generic.y = y += 3*MENU_HEADER_LINE_SIZE; // MENU_FONT_SIZE * 13
|
||||||
s_options_back_action.generic.callback = UI_BackMenu;
|
s_options_back_action.generic.callback = UI_BackMenu;
|
||||||
// s_options_back_action.generic.cursor_offset = -(MENU_FONT_SIZE*10);
|
|
||||||
|
|
||||||
UI_AddMenuItem (&s_options_menu, (void *) &s_options_sound_section);
|
UI_AddMenuItem (&s_options_menu, (void *) &s_options_sound_section);
|
||||||
UI_AddMenuItem (&s_options_menu, (void *) &s_options_controls_section);
|
UI_AddMenuItem (&s_options_menu, (void *) &s_options_controls_section);
|
||||||
|
|
|
@ -58,63 +58,63 @@ static menuaction_s s_options_controls_back_action;
|
||||||
|
|
||||||
static void MouseSpeedFunc (void *unused)
|
static void MouseSpeedFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "sensitivity", UI_MenuSlider_GetValue(&s_options_controls_sensitivity_slider) );
|
UI_MenuSlider_SaveValue (&s_options_controls_sensitivity_slider, "sensitivity");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AlwaysRunFunc (void *unused)
|
static void AlwaysRunFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_run", s_options_controls_alwaysrun_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_alwaysrun_box, "cl_run");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Psychospaz's chaseam
|
// Psychospaz's chaseam
|
||||||
static void ThirdPersonFunc (void *unused)
|
static void ThirdPersonFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cg_thirdperson", s_options_controls_thirdperson_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_thirdperson_box, "cg_thirdperson");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ThirdPersonDistFunc (void *unused)
|
static void ThirdPersonDistFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cg_thirdperson_dist", UI_MenuSlider_GetValue(&s_options_controls_thirdperson_distance_slider) );
|
UI_MenuSlider_SaveValue (&s_options_controls_thirdperson_distance_slider, "cg_thirdperson_dist");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ThirdPersonOffsetFunc (void *unused)
|
static void ThirdPersonOffsetFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cg_thirdperson_offset", UI_MenuSlider_GetValue(&s_options_controls_thirdperson_offset_slider) );
|
UI_MenuSlider_SaveValue (&s_options_controls_thirdperson_offset_slider, "cg_thirdperson_offset");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ThirdPersonAngleFunc (void *unused)
|
static void ThirdPersonAngleFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cg_thirdperson_angle", UI_MenuSlider_GetValue(&s_options_controls_thirdperson_angle_slider) );
|
UI_MenuSlider_SaveValue (&s_options_controls_thirdperson_angle_slider, "cg_thirdperson_angle");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FreeLookFunc (void *unused)
|
static void FreeLookFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "freelook", s_options_controls_freelook_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_freelook_box, "freelook");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InvertMouseFunc (void *unused)
|
static void InvertMouseFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "m_pitch", -m_pitch->value );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_invertmouse_box, "m_pitch");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AutosensitivityFunc (void *unused)
|
static void AutosensitivityFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "in_autosensitivity", s_options_controls_autosensitivity_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_autosensitivity_box, "in_autosensitivity");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LookspringFunc (void *unused)
|
static void LookspringFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "lookspring", !lookspring->value );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_lookspring_box, "lookspring");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LookstrafeFunc (void *unused)
|
static void LookstrafeFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "lookstrafe", !lookstrafe->value );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_lookstrafe_box, "lookstrafe");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void JoystickFunc (void *unused)
|
static void JoystickFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "in_joystick", s_options_controls_joystick_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_controls_joystick_box, "in_joystick");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CustomizeControlsFunc(void *unused)
|
static void CustomizeControlsFunc(void *unused)
|
||||||
|
@ -122,38 +122,25 @@ static void CustomizeControlsFunc(void *unused)
|
||||||
Menu_Keys_f ();
|
Menu_Keys_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ControlsSetMenuItemValues (void)
|
static void M_ControlsSetMenuItemValues (void)
|
||||||
{
|
{
|
||||||
UI_MenuSlider_SetValue (&s_options_controls_sensitivity_slider, Cvar_VariableValue("sensitivity"));
|
UI_MenuSlider_SetValue (&s_options_controls_sensitivity_slider, "sensitivity", 1.0f, 11.0f, false);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_controls_invertmouse_box, "m_pitch", 0, 0, false);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_controls_autosensitivity_box, "in_autosensitivity", 0, 1, true);
|
||||||
|
|
||||||
s_options_controls_invertmouse_box.curvalue = Cvar_VariableValue("m_pitch") < 0;
|
UI_MenuSpinControl_SetValue (&s_options_controls_thirdperson_box, "cg_thirdperson", 0, 1, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_controls_thirdperson_distance_slider, "cg_thirdperson_dist", 10.0f, 150.0f, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_controls_thirdperson_offset_slider, "cg_thirdperson_offset", 0.0f, 64.0f, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_controls_thirdperson_angle_slider, "cg_thirdperson_angle", 0.0f, 30.0f, true);
|
||||||
|
|
||||||
Cvar_SetValue( "in_autosensitivity", ClampCvar( 0, 1, Cvar_VariableValue("in_autosensitivity") ) );
|
UI_MenuSpinControl_SetValue (&s_options_controls_alwaysrun_box, "cl_run", 0, 1, true);
|
||||||
s_options_controls_autosensitivity_box.curvalue = Cvar_VariableValue("in_autosensitivity");
|
UI_MenuSpinControl_SetValue (&s_options_controls_lookspring_box, "lookspring", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_controls_lookstrafe_box, "lookstrafe", 0, 1, true);
|
||||||
Cvar_SetValue( "cg_thirdperson", ClampCvar( 0, 1, Cvar_VariableValue("cg_thirdperson") ) );
|
UI_MenuSpinControl_SetValue (&s_options_controls_freelook_box, "freelook", 0, 1, true);
|
||||||
s_options_controls_thirdperson_box.curvalue = Cvar_VariableValue("cg_thirdperson");
|
UI_MenuSpinControl_SetValue (&s_options_controls_joystick_box, "in_joystick", 0, 1, true);
|
||||||
UI_MenuSlider_SetValue (&s_options_controls_thirdperson_distance_slider, Cvar_VariableValue("cg_thirdperson_dist"));
|
|
||||||
UI_MenuSlider_SetValue (&s_options_controls_thirdperson_offset_slider, Cvar_VariableValue("cg_thirdperson_offset"));
|
|
||||||
UI_MenuSlider_SetValue (&s_options_controls_thirdperson_angle_slider, Cvar_VariableValue("cg_thirdperson_angle"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "cl_run", ClampCvar( 0, 1, Cvar_VariableValue("cl_run") ) );
|
|
||||||
s_options_controls_alwaysrun_box.curvalue = Cvar_VariableValue("cl_run");
|
|
||||||
|
|
||||||
Cvar_SetValue( "lookspring", ClampCvar( 0, 1, Cvar_VariableValue("lookspring") ) );
|
|
||||||
s_options_controls_lookspring_box.curvalue = Cvar_VariableValue("lookspring");
|
|
||||||
|
|
||||||
Cvar_SetValue( "lookstrafe", ClampCvar( 0, 1, Cvar_VariableValue("lookstrafe") ) );
|
|
||||||
s_options_controls_lookstrafe_box.curvalue = Cvar_VariableValue("lookstrafe");
|
|
||||||
|
|
||||||
Cvar_SetValue( "freelook", ClampCvar( 0, 1, Cvar_VariableValue("freelook") ) );
|
|
||||||
s_options_controls_freelook_box.curvalue = Cvar_VariableValue("freelook");
|
|
||||||
|
|
||||||
Cvar_SetValue( "in_joystick", ClampCvar( 0, 1, Cvar_VariableValue("in_joystick") ) );
|
|
||||||
s_options_controls_joystick_box.curvalue = Cvar_VariableValue("in_joystick");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ControlsResetDefaultsFunc (void *unused)
|
static void M_ControlsResetDefaultsFunc (void *unused)
|
||||||
{
|
{
|
||||||
// Cvar_SetToDefault ("sensitivity");
|
// Cvar_SetToDefault ("sensitivity");
|
||||||
// Cvar_SetToDefault ("m_pitch");
|
// Cvar_SetToDefault ("m_pitch");
|
||||||
|
@ -172,7 +159,7 @@ static void ControlsResetDefaultsFunc (void *unused)
|
||||||
Cbuf_AddText ("exec defaultbinds.cfg\n"); // reset default binds
|
Cbuf_AddText ("exec defaultbinds.cfg\n"); // reset default binds
|
||||||
Cbuf_Execute();
|
Cbuf_Execute();
|
||||||
|
|
||||||
ControlsSetMenuItemValues ();
|
M_ControlsSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Controls_Init (void)
|
void Menu_Options_Controls_Init (void)
|
||||||
|
@ -214,7 +201,8 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_invertmouse_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_controls_invertmouse_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_controls_invertmouse_box.generic.name = "invert mouse";
|
s_options_controls_invertmouse_box.generic.name = "invert mouse";
|
||||||
s_options_controls_invertmouse_box.generic.callback = InvertMouseFunc;
|
s_options_controls_invertmouse_box.generic.callback = InvertMouseFunc;
|
||||||
s_options_controls_invertmouse_box.itemnames = yesno_names;
|
s_options_controls_invertmouse_box.itemNames = yesno_names;
|
||||||
|
s_options_controls_invertmouse_box.invertValue = true;
|
||||||
s_options_controls_invertmouse_box.generic.statusbar = "inverts mouse y-axis movement";
|
s_options_controls_invertmouse_box.generic.statusbar = "inverts mouse y-axis movement";
|
||||||
|
|
||||||
s_options_controls_autosensitivity_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_controls_autosensitivity_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -223,7 +211,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_autosensitivity_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_controls_autosensitivity_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_controls_autosensitivity_box.generic.name = "scale mouse to FOV";
|
s_options_controls_autosensitivity_box.generic.name = "scale mouse to FOV";
|
||||||
s_options_controls_autosensitivity_box.generic.callback = AutosensitivityFunc;
|
s_options_controls_autosensitivity_box.generic.callback = AutosensitivityFunc;
|
||||||
s_options_controls_autosensitivity_box.itemnames = yesno_names;
|
s_options_controls_autosensitivity_box.itemNames = yesno_names;
|
||||||
s_options_controls_autosensitivity_box.generic.statusbar = "adjusts mouse sensitivity to zoomed FOV";
|
s_options_controls_autosensitivity_box.generic.statusbar = "adjusts mouse sensitivity to zoomed FOV";
|
||||||
|
|
||||||
s_options_controls_thirdperson_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_controls_thirdperson_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -232,7 +220,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_thirdperson_box.generic.y = y+=2*MENU_LINE_SIZE;
|
s_options_controls_thirdperson_box.generic.y = y+=2*MENU_LINE_SIZE;
|
||||||
s_options_controls_thirdperson_box.generic.name = "third person";
|
s_options_controls_thirdperson_box.generic.name = "third person";
|
||||||
s_options_controls_thirdperson_box.generic.callback = ThirdPersonFunc;
|
s_options_controls_thirdperson_box.generic.callback = ThirdPersonFunc;
|
||||||
s_options_controls_thirdperson_box.itemnames = yesno_names;
|
s_options_controls_thirdperson_box.itemNames = yesno_names;
|
||||||
s_options_controls_thirdperson_box.generic.statusbar = "enables third-person mode";
|
s_options_controls_thirdperson_box.generic.statusbar = "enables third-person mode";
|
||||||
|
|
||||||
s_options_controls_thirdperson_distance_slider.generic.type = MTYPE_SLIDER;
|
s_options_controls_thirdperson_distance_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -277,7 +265,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_alwaysrun_box.generic.y = y+=2*MENU_LINE_SIZE;
|
s_options_controls_alwaysrun_box.generic.y = y+=2*MENU_LINE_SIZE;
|
||||||
s_options_controls_alwaysrun_box.generic.name = "always run";
|
s_options_controls_alwaysrun_box.generic.name = "always run";
|
||||||
s_options_controls_alwaysrun_box.generic.callback = AlwaysRunFunc;
|
s_options_controls_alwaysrun_box.generic.callback = AlwaysRunFunc;
|
||||||
s_options_controls_alwaysrun_box.itemnames = yesno_names;
|
s_options_controls_alwaysrun_box.itemNames = yesno_names;
|
||||||
s_options_controls_alwaysrun_box.generic.statusbar = "enables running as default movement";
|
s_options_controls_alwaysrun_box.generic.statusbar = "enables running as default movement";
|
||||||
|
|
||||||
s_options_controls_lookspring_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_controls_lookspring_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -286,7 +274,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_lookspring_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_controls_lookspring_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_controls_lookspring_box.generic.name = "lookspring";
|
s_options_controls_lookspring_box.generic.name = "lookspring";
|
||||||
s_options_controls_lookspring_box.generic.callback = LookspringFunc;
|
s_options_controls_lookspring_box.generic.callback = LookspringFunc;
|
||||||
s_options_controls_lookspring_box.itemnames = yesno_names;
|
s_options_controls_lookspring_box.itemNames = yesno_names;
|
||||||
|
|
||||||
s_options_controls_lookstrafe_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_controls_lookstrafe_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_options_controls_lookstrafe_box.generic.textSize = MENU_FONT_SIZE;
|
s_options_controls_lookstrafe_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -294,7 +282,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_lookstrafe_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_controls_lookstrafe_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_controls_lookstrafe_box.generic.name = "lookstrafe";
|
s_options_controls_lookstrafe_box.generic.name = "lookstrafe";
|
||||||
s_options_controls_lookstrafe_box.generic.callback = LookstrafeFunc;
|
s_options_controls_lookstrafe_box.generic.callback = LookstrafeFunc;
|
||||||
s_options_controls_lookstrafe_box.itemnames = yesno_names;
|
s_options_controls_lookstrafe_box.itemNames = yesno_names;
|
||||||
|
|
||||||
s_options_controls_freelook_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_controls_freelook_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_options_controls_freelook_box.generic.textSize = MENU_FONT_SIZE;
|
s_options_controls_freelook_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -302,7 +290,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_freelook_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_controls_freelook_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_controls_freelook_box.generic.name = "free look";
|
s_options_controls_freelook_box.generic.name = "free look";
|
||||||
s_options_controls_freelook_box.generic.callback = FreeLookFunc;
|
s_options_controls_freelook_box.generic.callback = FreeLookFunc;
|
||||||
s_options_controls_freelook_box.itemnames = yesno_names;
|
s_options_controls_freelook_box.itemNames = yesno_names;
|
||||||
s_options_controls_freelook_box.generic.statusbar = "enables free head movement with mouse";
|
s_options_controls_freelook_box.generic.statusbar = "enables free head movement with mouse";
|
||||||
|
|
||||||
s_options_controls_joystick_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_controls_joystick_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -311,7 +299,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_joystick_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_controls_joystick_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_controls_joystick_box.generic.name = "use joystick";
|
s_options_controls_joystick_box.generic.name = "use joystick";
|
||||||
s_options_controls_joystick_box.generic.callback = JoystickFunc;
|
s_options_controls_joystick_box.generic.callback = JoystickFunc;
|
||||||
s_options_controls_joystick_box.itemnames = yesno_names;
|
s_options_controls_joystick_box.itemNames = yesno_names;
|
||||||
s_options_controls_joystick_box.generic.statusbar = "enables use of joystick";
|
s_options_controls_joystick_box.generic.statusbar = "enables use of joystick";
|
||||||
|
|
||||||
s_options_controls_customize_keys_action.generic.type = MTYPE_ACTION;
|
s_options_controls_customize_keys_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -326,7 +314,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
s_options_controls_defaults_action.generic.x = MENU_FONT_SIZE;
|
s_options_controls_defaults_action.generic.x = MENU_FONT_SIZE;
|
||||||
s_options_controls_defaults_action.generic.y = 20*MENU_LINE_SIZE;
|
s_options_controls_defaults_action.generic.y = 20*MENU_LINE_SIZE;
|
||||||
s_options_controls_defaults_action.generic.name = "reset defaults";
|
s_options_controls_defaults_action.generic.name = "reset defaults";
|
||||||
s_options_controls_defaults_action.generic.callback = ControlsResetDefaultsFunc;
|
s_options_controls_defaults_action.generic.callback = M_ControlsResetDefaultsFunc;
|
||||||
s_options_controls_defaults_action.generic.statusbar = "resets all control settings to internal defaults";
|
s_options_controls_defaults_action.generic.statusbar = "resets all control settings to internal defaults";
|
||||||
|
|
||||||
s_options_controls_back_action.generic.type = MTYPE_ACTION;
|
s_options_controls_back_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -353,7 +341,7 @@ void Menu_Options_Controls_Init (void)
|
||||||
UI_AddMenuItem (&s_options_controls_menu, (void *) &s_options_controls_defaults_action);
|
UI_AddMenuItem (&s_options_controls_menu, (void *) &s_options_controls_defaults_action);
|
||||||
UI_AddMenuItem (&s_options_controls_menu, (void *) &s_options_controls_back_action);
|
UI_AddMenuItem (&s_options_controls_menu, (void *) &s_options_controls_back_action);
|
||||||
|
|
||||||
ControlsSetMenuItemValues ();
|
M_ControlsSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Controls_Draw (void)
|
void Menu_Options_Controls_Draw (void)
|
||||||
|
|
|
@ -54,95 +54,84 @@ static menuaction_s s_options_effects_back_action;
|
||||||
|
|
||||||
static void BloodFunc (void *unused)
|
static void BloodFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_blood", s_options_effects_blood_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_effects_blood_box, "cl_blood");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void OldExplosionFunc (void *unused)
|
static void OldExplosionFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_old_explosions", s_options_effects_oldexplosions_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_effects_oldexplosions_box, "cl_old_explosions");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PlasmaExploSoundFunc (void *unused)
|
static void PlasmaExploSoundFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_plasma_explo_sound", s_options_effects_plasmaexplosound_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_effects_plasmaexplosound_box, "cl_plasma_explo_sound");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ItemBobFunc (void *unused)
|
static void ItemBobFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_item_bobbing", s_options_effects_itembob_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_effects_itembob_box, "cl_item_bobbing");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ParticleCompFunc (void *unused)
|
static void ParticleCompFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_particle_scale", UI_MenuSlider_GetValue(&s_options_effects_particle_comp_slider) );
|
UI_MenuSlider_SaveValue (&s_options_effects_particle_comp_slider, "cl_particle_scale");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DecalCallback (void *unused)
|
static void DecalCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "r_decals", UI_MenuSlider_GetValue(&s_options_effects_decal_slider) );
|
UI_MenuSlider_SaveValue (&s_options_effects_decal_slider, "r_decals");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Psychospaz's changeable rail trail
|
// Psychospaz's changeable rail trail
|
||||||
static void RailTrailFunc (void *unused)
|
static void RailTrailFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_railtype", s_options_effects_railtrail_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_effects_railtrail_box, "cl_railtype");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void RailColorRedFunc (void *unused)
|
static void RailColorRedFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_railred", UI_MenuSlider_GetValue(&s_options_effects_railcolor_slider[0]) );
|
UI_MenuSlider_SaveValue (&s_options_effects_railcolor_slider[0], "cl_railred");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void RailColorGreenFunc (void *unused)
|
static void RailColorGreenFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_railgreen", UI_MenuSlider_GetValue(&s_options_effects_railcolor_slider[1]) );
|
UI_MenuSlider_SaveValue (&s_options_effects_railcolor_slider[1], "cl_railgreen");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void RailColorBlueFunc (void *unused)
|
static void RailColorBlueFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_railblue", UI_MenuSlider_GetValue(&s_options_effects_railcolor_slider[2]) );
|
UI_MenuSlider_SaveValue (&s_options_effects_railcolor_slider[2], "cl_railblue");
|
||||||
}
|
}
|
||||||
|
|
||||||
// foostep override option
|
// foostep override option
|
||||||
static void FootStepFunc (void *unused)
|
static void FootStepFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_footstep_override", s_options_effects_footstep_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_effects_footstep_box, "cl_footstep_override");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
static void EffectsSetMenuItemValues (void)
|
static void M_EffectsSetMenuItemValues (void)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_blood", ClampCvar( 0, 4, Cvar_VariableValue("cl_blood") ) );
|
UI_MenuSpinControl_SetValue (&s_options_effects_blood_box, "cl_blood", 0, 4, true);
|
||||||
s_options_effects_blood_box.curvalue = Cvar_VariableValue("cl_blood");
|
|
||||||
|
|
||||||
Cvar_SetValue( "cl_old_explosions", ClampCvar( 0, 1, Cvar_VariableValue("cl_old_explosions") ) );
|
UI_MenuSpinControl_SetValue (&s_options_effects_oldexplosions_box, "cl_old_explosions", 0, 1, true);
|
||||||
s_options_effects_oldexplosions_box.curvalue = Cvar_VariableValue("cl_old_explosions");
|
UI_MenuSpinControl_SetValue (&s_options_effects_plasmaexplosound_box, "cl_plasma_explo_sound", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_effects_itembob_box, "cl_item_bobbing", 0, 1, true);
|
||||||
|
|
||||||
Cvar_SetValue( "cl_plasma_explo_sound", ClampCvar( 0, 1, Cvar_VariableValue("cl_plasma_explo_sound") ) );
|
UI_MenuSlider_SetValue (&s_options_effects_decal_slider, "r_decals", 0, 1000, true);
|
||||||
s_options_effects_plasmaexplosound_box.curvalue = Cvar_VariableValue("cl_plasma_explo_sound");
|
UI_MenuSlider_SetValue (&s_options_effects_particle_comp_slider, "cl_particle_scale", 1, 5, true);
|
||||||
|
|
||||||
Cvar_SetValue( "cl_item_bobbing", ClampCvar( 0, 1, Cvar_VariableValue("cl_item_bobbing") ) );
|
UI_MenuSpinControl_SetValue (&s_options_effects_railtrail_box, "cl_railtype", 0, 2, true);
|
||||||
s_options_effects_itembob_box.curvalue = Cvar_VariableValue("cl_item_bobbing");
|
UI_MenuSlider_SetValue (&s_options_effects_railcolor_slider[0], "cl_railred", 0, 256, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_effects_railcolor_slider[1], "cl_railgreen", 0, 256, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_effects_railcolor_slider[2], "cl_railblue", 0, 256, true);
|
||||||
|
|
||||||
Cvar_SetValue( "r_decals", ClampCvar (0, 1000, Cvar_VariableValue("r_decals")) );
|
UI_MenuSpinControl_SetValue (&s_options_effects_footstep_box, "cl_footstep_override", 0, 1, true);
|
||||||
UI_MenuSlider_SetValue (&s_options_effects_decal_slider, Cvar_VariableValue("r_decals"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "cl_particle_scale", ClampCvar( 0, 5, Cvar_VariableValue("cl_particle_scale") ) );
|
|
||||||
UI_MenuSlider_SetValue (&s_options_effects_particle_comp_slider, Cvar_VariableValue("cl_particle_scale"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "cl_railtype", ClampCvar( 0, 2, Cvar_VariableValue("cl_railtype") ) );
|
|
||||||
s_options_effects_railtrail_box.curvalue = Cvar_VariableValue("cl_railtype");
|
|
||||||
UI_MenuSlider_SetValue (&s_options_effects_railcolor_slider[0], Cvar_VariableValue("cl_railred"));
|
|
||||||
UI_MenuSlider_SetValue (&s_options_effects_railcolor_slider[1], Cvar_VariableValue("cl_railgreen"));
|
|
||||||
UI_MenuSlider_SetValue (&s_options_effects_railcolor_slider[2], Cvar_VariableValue("cl_railblue"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "cl_footstep_override", ClampCvar( 0, 1, Cvar_VariableValue("cl_footstep_override") ) );
|
|
||||||
s_options_effects_footstep_box.curvalue = Cvar_VariableValue("cl_footstep_override");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void EffectsResetDefaultsFunc (void *unused)
|
static void M_EffectsResetDefaultsFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetToDefault ("cl_blood");
|
Cvar_SetToDefault ("cl_blood");
|
||||||
Cvar_SetToDefault ("cl_old_explosions");
|
Cvar_SetToDefault ("cl_old_explosions");
|
||||||
|
@ -156,7 +145,7 @@ static void EffectsResetDefaultsFunc (void *unused)
|
||||||
Cvar_SetToDefault ("cl_railblue");
|
Cvar_SetToDefault ("cl_railblue");
|
||||||
Cvar_SetToDefault ("cl_footstep_override");
|
Cvar_SetToDefault ("cl_footstep_override");
|
||||||
|
|
||||||
EffectsSetMenuItemValues ();
|
M_EffectsSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Options_Effects_MenuInit (void)
|
void Options_Effects_MenuInit (void)
|
||||||
|
@ -167,7 +156,6 @@ void Options_Effects_MenuInit (void)
|
||||||
"yes",
|
"yes",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *blood_names[] =
|
static const char *blood_names[] =
|
||||||
{
|
{
|
||||||
"none",
|
"none",
|
||||||
|
@ -177,7 +165,6 @@ void Options_Effects_MenuInit (void)
|
||||||
"gore",
|
"gore",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *railtrail_names[] =
|
static const char *railtrail_names[] =
|
||||||
{
|
{
|
||||||
"colored spiral",
|
"colored spiral",
|
||||||
|
@ -185,9 +172,7 @@ void Options_Effects_MenuInit (void)
|
||||||
"colored devrail",
|
"colored devrail",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
int y = 3*MENU_LINE_SIZE;
|
||||||
|
|
||||||
int y = 3*MENU_LINE_SIZE;
|
|
||||||
|
|
||||||
s_options_effects_menu.x = SCREEN_WIDTH*0.5;
|
s_options_effects_menu.x = SCREEN_WIDTH*0.5;
|
||||||
s_options_effects_menu.y = SCREEN_HEIGHT*0.5 - 58;
|
s_options_effects_menu.y = SCREEN_HEIGHT*0.5 - 58;
|
||||||
|
@ -205,7 +190,7 @@ void Options_Effects_MenuInit (void)
|
||||||
s_options_effects_blood_box.generic.y = y;
|
s_options_effects_blood_box.generic.y = y;
|
||||||
s_options_effects_blood_box.generic.name = "blood type";
|
s_options_effects_blood_box.generic.name = "blood type";
|
||||||
s_options_effects_blood_box.generic.callback = BloodFunc;
|
s_options_effects_blood_box.generic.callback = BloodFunc;
|
||||||
s_options_effects_blood_box.itemnames = blood_names;
|
s_options_effects_blood_box.itemNames = blood_names;
|
||||||
s_options_effects_blood_box.generic.statusbar = "changes blood effect type";
|
s_options_effects_blood_box.generic.statusbar = "changes blood effect type";
|
||||||
|
|
||||||
s_options_effects_oldexplosions_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_effects_oldexplosions_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -214,7 +199,7 @@ void Options_Effects_MenuInit (void)
|
||||||
s_options_effects_oldexplosions_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_options_effects_oldexplosions_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_options_effects_oldexplosions_box.generic.name = "old style explosions";
|
s_options_effects_oldexplosions_box.generic.name = "old style explosions";
|
||||||
s_options_effects_oldexplosions_box.generic.callback = OldExplosionFunc;
|
s_options_effects_oldexplosions_box.generic.callback = OldExplosionFunc;
|
||||||
s_options_effects_oldexplosions_box.itemnames = yesno_names;
|
s_options_effects_oldexplosions_box.itemNames = yesno_names;
|
||||||
s_options_effects_oldexplosions_box.generic.statusbar = "brings back those cheesy model explosions";
|
s_options_effects_oldexplosions_box.generic.statusbar = "brings back those cheesy model explosions";
|
||||||
|
|
||||||
s_options_effects_plasmaexplosound_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_effects_plasmaexplosound_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -223,7 +208,7 @@ void Options_Effects_MenuInit (void)
|
||||||
s_options_effects_plasmaexplosound_box.generic.y = y += MENU_LINE_SIZE;
|
s_options_effects_plasmaexplosound_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_options_effects_plasmaexplosound_box.generic.name = "unique plasma explode sound";
|
s_options_effects_plasmaexplosound_box.generic.name = "unique plasma explode sound";
|
||||||
s_options_effects_plasmaexplosound_box.generic.callback = PlasmaExploSoundFunc;
|
s_options_effects_plasmaexplosound_box.generic.callback = PlasmaExploSoundFunc;
|
||||||
s_options_effects_plasmaexplosound_box.itemnames = yesno_names;
|
s_options_effects_plasmaexplosound_box.itemNames = yesno_names;
|
||||||
s_options_effects_plasmaexplosound_box.generic.statusbar = "gives Phalanx Cannon plasma explosions a unique sound";
|
s_options_effects_plasmaexplosound_box.generic.statusbar = "gives Phalanx Cannon plasma explosions a unique sound";
|
||||||
|
|
||||||
s_options_effects_itembob_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_effects_itembob_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -232,7 +217,7 @@ void Options_Effects_MenuInit (void)
|
||||||
s_options_effects_itembob_box.generic.y = y += MENU_LINE_SIZE;
|
s_options_effects_itembob_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_options_effects_itembob_box.generic.name = "item bobbing";
|
s_options_effects_itembob_box.generic.name = "item bobbing";
|
||||||
s_options_effects_itembob_box.generic.callback = ItemBobFunc;
|
s_options_effects_itembob_box.generic.callback = ItemBobFunc;
|
||||||
s_options_effects_itembob_box.itemnames = yesno_names;
|
s_options_effects_itembob_box.itemNames = yesno_names;
|
||||||
s_options_effects_itembob_box.generic.statusbar = "adds bobbing effect to rotating items";
|
s_options_effects_itembob_box.generic.statusbar = "adds bobbing effect to rotating items";
|
||||||
|
|
||||||
s_options_effects_decal_slider.generic.type = MTYPE_SLIDER;
|
s_options_effects_decal_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -266,7 +251,7 @@ void Options_Effects_MenuInit (void)
|
||||||
s_options_effects_railtrail_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_options_effects_railtrail_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_options_effects_railtrail_box.generic.name = "railtrail type";
|
s_options_effects_railtrail_box.generic.name = "railtrail type";
|
||||||
s_options_effects_railtrail_box.generic.callback = RailTrailFunc;
|
s_options_effects_railtrail_box.generic.callback = RailTrailFunc;
|
||||||
s_options_effects_railtrail_box.itemnames = railtrail_names;
|
s_options_effects_railtrail_box.itemNames = railtrail_names;
|
||||||
s_options_effects_railtrail_box.generic.statusbar = "changes railgun particle effect";
|
s_options_effects_railtrail_box.generic.statusbar = "changes railgun particle effect";
|
||||||
|
|
||||||
s_options_effects_railcolor_slider[0].generic.type = MTYPE_SLIDER;
|
s_options_effects_railcolor_slider[0].generic.type = MTYPE_SLIDER;
|
||||||
|
@ -312,7 +297,7 @@ void Options_Effects_MenuInit (void)
|
||||||
s_options_effects_footstep_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_options_effects_footstep_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_options_effects_footstep_box.generic.name = "override footstep sounds";
|
s_options_effects_footstep_box.generic.name = "override footstep sounds";
|
||||||
s_options_effects_footstep_box.generic.callback = FootStepFunc;
|
s_options_effects_footstep_box.generic.callback = FootStepFunc;
|
||||||
s_options_effects_footstep_box.itemnames = yesno_names;
|
s_options_effects_footstep_box.itemNames = yesno_names;
|
||||||
s_options_effects_footstep_box.generic.statusbar = "sets footstep sounds with definitions in texsurfs.txt";
|
s_options_effects_footstep_box.generic.statusbar = "sets footstep sounds with definitions in texsurfs.txt";
|
||||||
|
|
||||||
s_options_effects_defaults_action.generic.type = MTYPE_ACTION;
|
s_options_effects_defaults_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -320,7 +305,7 @@ void Options_Effects_MenuInit (void)
|
||||||
s_options_effects_defaults_action.generic.x = MENU_FONT_SIZE;
|
s_options_effects_defaults_action.generic.x = MENU_FONT_SIZE;
|
||||||
s_options_effects_defaults_action.generic.y = y += 2*MENU_LINE_SIZE;
|
s_options_effects_defaults_action.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_options_effects_defaults_action.generic.name = "reset defaults";
|
s_options_effects_defaults_action.generic.name = "reset defaults";
|
||||||
s_options_effects_defaults_action.generic.callback = EffectsResetDefaultsFunc;
|
s_options_effects_defaults_action.generic.callback = M_EffectsResetDefaultsFunc;
|
||||||
s_options_effects_defaults_action.generic.statusbar = "resets all effects settings to internal defaults";
|
s_options_effects_defaults_action.generic.statusbar = "resets all effects settings to internal defaults";
|
||||||
|
|
||||||
s_options_effects_back_action.generic.type = MTYPE_ACTION;
|
s_options_effects_back_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -345,7 +330,7 @@ void Options_Effects_MenuInit (void)
|
||||||
UI_AddMenuItem (&s_options_effects_menu, (void *) &s_options_effects_defaults_action);
|
UI_AddMenuItem (&s_options_effects_menu, (void *) &s_options_effects_defaults_action);
|
||||||
UI_AddMenuItem (&s_options_effects_menu, (void *) &s_options_effects_back_action);
|
UI_AddMenuItem (&s_options_effects_menu, (void *) &s_options_effects_back_action);
|
||||||
|
|
||||||
EffectsSetMenuItemValues ();
|
M_EffectsSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Effects_Draw (void)
|
void Menu_Options_Effects_Draw (void)
|
||||||
|
|
|
@ -60,140 +60,91 @@ cvar_t *scr_font;
|
||||||
|
|
||||||
static void MouseMenuFunc (void *unused)
|
static void MouseMenuFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "ui_sensitivity", UI_MenuSlider_GetValue(&s_options_interface_menumouse_slider) );
|
UI_MenuSlider_SaveValue (&s_options_interface_menumouse_slider, "ui_sensitivity");
|
||||||
}
|
}
|
||||||
|
|
||||||
// menu alpha option
|
// menu alpha option
|
||||||
static void MenuAlphaFunc (void *unused)
|
static void MenuAlphaFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "ui_background_alpha", UI_MenuSlider_GetValue(&s_options_interface_menualpha_slider) );
|
UI_MenuSlider_SaveValue (&s_options_interface_menualpha_slider, "ui_background_alpha");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ConFontFunc (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_options_interface_confont_box, "con_font");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void FontSizeFunc (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSlider_SaveValue (&s_options_interface_fontsize_slider, "con_font_size");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void UIFontFunc (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_options_interface_uifont_box, "ui_font");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ScrFontFunc (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_options_interface_scrfont_box, "scr_font");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AltTextColorFunc (void *unused)
|
static void AltTextColorFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "alt_text_color", s_options_interface_alt_text_color_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_options_interface_alt_text_color_box, "alt_text_color");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Psychospaz's transparent console
|
// Psychospaz's transparent console
|
||||||
static void ConAlphaFunc (void *unused)
|
static void ConAlphaFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "scr_conalpha", UI_MenuSlider_GetValue(&s_options_interface_conalpha_slider) );
|
UI_MenuSlider_SaveValue (&s_options_interface_conalpha_slider, "scr_conalpha");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
// variable console height
|
// variable console height
|
||||||
/*static void ConHeightFunc (void *unused)
|
static void ConHeightFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "scr_conheight", UI_MenuSlider_GetValue(&s_options_interface_conheight_slider) );
|
UI_MenuSlider_SaveValue (&s_options_interface_conheight_slider, "scr_conheight");
|
||||||
}*/
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void SimpleLoadscreenFunc (void *unused)
|
static void SimpleLoadscreenFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "scr_simple_loadscreen", s_options_interface_simple_loadscreen_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_interface_simple_loadscreen_box, "scr_simple_loadscreen");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void NewConbackFunc (void *unused)
|
static void NewConbackFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "scr_newconback", s_options_interface_newconback_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_interface_newconback_box, "scr_newconback");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void NoAltTabFunc (void *unused)
|
static void NoAltTabFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "win_noalttab", s_options_interface_noalttab_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_interface_noalttab_box, "win_noalttab");
|
||||||
}
|
|
||||||
|
|
||||||
static void FontSizeFunc (void *unused)
|
|
||||||
{
|
|
||||||
Cvar_SetValue( "con_font_size", UI_MenuSlider_GetValue(&s_options_interface_fontsize_slider) );
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ConFontFunc (void *unused)
|
|
||||||
{
|
|
||||||
Cvar_Set( "con_font", ui_font_names[s_options_interface_confont_box.curvalue] );
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UIFontFunc (void *unused)
|
|
||||||
{
|
|
||||||
Cvar_Set( "ui_font", ui_font_names[s_options_interface_uifont_box.curvalue] );
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ScrFontFunc (void *unused)
|
|
||||||
{
|
|
||||||
Cvar_Set( "scr_font", ui_font_names[s_options_interface_scrfont_box.curvalue] );
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetFontCursor (void)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
s_options_interface_confont_box.curvalue = 0;
|
|
||||||
s_options_interface_uifont_box.curvalue = 0;
|
|
||||||
s_options_interface_scrfont_box.curvalue = 0;
|
|
||||||
|
|
||||||
if (!con_font)
|
|
||||||
con_font = Cvar_Get ("con_font", "default", CVAR_ARCHIVE);
|
|
||||||
if (!ui_font)
|
|
||||||
ui_font = Cvar_Get ("ui_font", "default", CVAR_ARCHIVE);
|
|
||||||
if (!scr_font)
|
|
||||||
scr_font = Cvar_Get ("scr_font", "default", CVAR_ARCHIVE);
|
|
||||||
|
|
||||||
if (ui_numfonts > 1)
|
|
||||||
{
|
|
||||||
for (i=0; ui_font_names[i]; i++)
|
|
||||||
{
|
|
||||||
if (!Q_strcasecmp(con_font->string, ui_font_names[i]))
|
|
||||||
{
|
|
||||||
s_options_interface_confont_box.curvalue = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i=0; ui_font_names[i]; i++)
|
|
||||||
{
|
|
||||||
if (!Q_strcasecmp(ui_font->string, ui_font_names[i]))
|
|
||||||
{
|
|
||||||
s_options_interface_uifont_box.curvalue = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i=0; ui_font_names[i]; i++)
|
|
||||||
{
|
|
||||||
if (!Q_strcasecmp(scr_font->string, ui_font_names[i]))
|
|
||||||
{
|
|
||||||
s_options_interface_scrfont_box.curvalue = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
static void InterfaceSetMenuItemValues (void)
|
static void M_InterfaceSetMenuItemValues (void)
|
||||||
{
|
{
|
||||||
SetFontCursor ();
|
UI_MenuSlider_SetValue (&s_options_interface_menumouse_slider, "ui_sensitivity", 0.25f, 2.0f, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_interface_menualpha_slider, "ui_background_alpha", 0.0f, 1.0f, true );
|
||||||
|
|
||||||
UI_MenuSlider_SetValue (&s_options_interface_menumouse_slider, Cvar_VariableValue("ui_sensitivity"));
|
UI_MenuSpinControl_SetValue (&s_options_interface_confont_box, "con_font", 0, 0, false);
|
||||||
UI_MenuSlider_SetValue (&s_options_interface_menualpha_slider, Cvar_VariableValue("ui_background_alpha"));
|
UI_MenuSlider_SetValue (&s_options_interface_fontsize_slider, "con_font_size", 6.0f, 16.0f, true);
|
||||||
UI_MenuSlider_SetValue (&s_options_interface_fontsize_slider, Cvar_VariableValue("con_font_size"));
|
UI_MenuSpinControl_SetValue (&s_options_interface_uifont_box, "ui_font", 0, 0, false);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_interface_scrfont_box, "scr_font", 0, 0, false);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_interface_alt_text_color_box, "alt_text_color", 0, 9, true);
|
||||||
|
|
||||||
Cvar_SetValue( "alt_text_color", ClampCvar( 0, 9, Cvar_VariableValue("alt_text_color") ) );
|
UI_MenuSlider_SetValue (&s_options_interface_conalpha_slider, "scr_conalpha", 0.0f, 1.0f, true);
|
||||||
s_options_interface_alt_text_color_box.curvalue = Cvar_VariableValue("alt_text_color");
|
// UI_MenuSlider_SetValue (&s_options_interface_conheight_slider, "scr_conheight", 0.10f, 1.0f, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_interface_simple_loadscreen_box, "scr_simple_loadscreen", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_interface_newconback_box, "scr_newconback", 0, 1, true);
|
||||||
|
|
||||||
Cvar_SetValue( "scr_conalpha", ClampCvar( 0, 1, Cvar_VariableValue("scr_conalpha") ) );
|
UI_MenuSpinControl_SetValue (&s_options_interface_noalttab_box, "win_noalttab", 0, 1, true);
|
||||||
UI_MenuSlider_SetValue (&s_options_interface_conalpha_slider, Cvar_VariableValue("scr_conalpha"));
|
|
||||||
|
|
||||||
// Cvar_SetValue( "scr_conheight", ClampCvar( 0.25, 0.75, Cvar_VariableValue("scr_conheight") ) );
|
|
||||||
// UI_MenuSlider_SetValue (&s_options_interface_conheight_slider, Cvar_VariableValue("scr_conheight"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "scr_simple_loadscreen", ClampCvar( 0, 1, Cvar_VariableValue("scr_simple_loadscreen") ) );
|
|
||||||
s_options_interface_simple_loadscreen_box.curvalue = Cvar_VariableValue("scr_simple_loadscreen");
|
|
||||||
|
|
||||||
Cvar_SetValue( "scr_newconback", ClampCvar( 0, 1, Cvar_VariableValue("scr_newconback") ) );
|
|
||||||
s_options_interface_newconback_box.curvalue = Cvar_VariableValue("scr_newconback");
|
|
||||||
|
|
||||||
s_options_interface_noalttab_box.curvalue = Cvar_VariableValue("win_noalttab");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InterfaceResetDefaultsFunc (void *unused)
|
static void M_InterfaceResetDefaultsFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetToDefault ("ui_sensitivity");
|
Cvar_SetToDefault ("ui_sensitivity");
|
||||||
Cvar_SetToDefault ("ui_background_alpha");
|
Cvar_SetToDefault ("ui_background_alpha");
|
||||||
|
@ -208,7 +159,7 @@ static void InterfaceResetDefaultsFunc (void *unused)
|
||||||
Cvar_SetToDefault ("scr_newconback");
|
Cvar_SetToDefault ("scr_newconback");
|
||||||
Cvar_SetToDefault ("win_noalttab");
|
Cvar_SetToDefault ("win_noalttab");
|
||||||
|
|
||||||
InterfaceSetMenuItemValues ();
|
M_InterfaceSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Options_Interface_MenuInit (void)
|
void Options_Interface_MenuInit (void)
|
||||||
|
@ -219,7 +170,6 @@ void Options_Interface_MenuInit (void)
|
||||||
"yes",
|
"yes",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *textcolor_names[] =
|
static const char *textcolor_names[] =
|
||||||
{
|
{
|
||||||
"gray",
|
"gray",
|
||||||
|
@ -234,7 +184,6 @@ void Options_Interface_MenuInit (void)
|
||||||
"orange",
|
"orange",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
int y = 3*MENU_LINE_SIZE;
|
int y = 3*MENU_LINE_SIZE;
|
||||||
|
|
||||||
s_options_interface_menu.x = SCREEN_WIDTH*0.5;
|
s_options_interface_menu.x = SCREEN_WIDTH*0.5;
|
||||||
|
@ -278,7 +227,8 @@ void Options_Interface_MenuInit (void)
|
||||||
s_options_interface_confont_box.generic.y = y+=2*MENU_LINE_SIZE;
|
s_options_interface_confont_box.generic.y = y+=2*MENU_LINE_SIZE;
|
||||||
s_options_interface_confont_box.generic.name = "console font";
|
s_options_interface_confont_box.generic.name = "console font";
|
||||||
s_options_interface_confont_box.generic.callback = ConFontFunc;
|
s_options_interface_confont_box.generic.callback = ConFontFunc;
|
||||||
s_options_interface_confont_box.itemnames = ui_font_names;
|
s_options_interface_confont_box.itemNames = ui_font_names;
|
||||||
|
s_options_interface_confont_box.itemValues = ui_font_names;
|
||||||
s_options_interface_confont_box.generic.statusbar = "changes font of console text";
|
s_options_interface_confont_box.generic.statusbar = "changes font of console text";
|
||||||
|
|
||||||
s_options_interface_fontsize_slider.generic.type = MTYPE_SLIDER;
|
s_options_interface_fontsize_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -299,7 +249,8 @@ void Options_Interface_MenuInit (void)
|
||||||
s_options_interface_uifont_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_interface_uifont_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_interface_uifont_box.generic.name = "menu font";
|
s_options_interface_uifont_box.generic.name = "menu font";
|
||||||
s_options_interface_uifont_box.generic.callback = UIFontFunc;
|
s_options_interface_uifont_box.generic.callback = UIFontFunc;
|
||||||
s_options_interface_uifont_box.itemnames = ui_font_names;
|
s_options_interface_uifont_box.itemNames = ui_font_names;
|
||||||
|
s_options_interface_uifont_box.itemValues = ui_font_names;
|
||||||
s_options_interface_uifont_box.generic.statusbar = "changes font of menu text";
|
s_options_interface_uifont_box.generic.statusbar = "changes font of menu text";
|
||||||
|
|
||||||
s_options_interface_scrfont_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_interface_scrfont_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -308,16 +259,17 @@ void Options_Interface_MenuInit (void)
|
||||||
s_options_interface_scrfont_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_interface_scrfont_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_interface_scrfont_box.generic.name = "HUD font";
|
s_options_interface_scrfont_box.generic.name = "HUD font";
|
||||||
s_options_interface_scrfont_box.generic.callback = ScrFontFunc;
|
s_options_interface_scrfont_box.generic.callback = ScrFontFunc;
|
||||||
s_options_interface_scrfont_box.itemnames = ui_font_names;
|
s_options_interface_scrfont_box.itemNames = ui_font_names;
|
||||||
|
s_options_interface_scrfont_box.itemValues = ui_font_names;
|
||||||
s_options_interface_scrfont_box.generic.statusbar = "changes font of HUD text";
|
s_options_interface_scrfont_box.generic.statusbar = "changes font of HUD text";
|
||||||
|
|
||||||
s_options_interface_alt_text_color_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_interface_alt_text_color_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_options_interface_alt_text_color_box.generic.textSize = MENU_FONT_SIZE;
|
s_options_interface_alt_text_color_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_options_interface_alt_text_color_box.generic.x = 0;
|
s_options_interface_alt_text_color_box.generic.x = 0;
|
||||||
s_options_interface_alt_text_color_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_interface_alt_text_color_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_interface_alt_text_color_box.generic.name = "alt text color";
|
s_options_interface_alt_text_color_box.generic.name = "alt text color";
|
||||||
s_options_interface_alt_text_color_box.generic.callback = AltTextColorFunc;
|
s_options_interface_alt_text_color_box.generic.callback = AltTextColorFunc;
|
||||||
s_options_interface_alt_text_color_box.itemnames = textcolor_names;
|
s_options_interface_alt_text_color_box.itemNames = textcolor_names;
|
||||||
s_options_interface_alt_text_color_box.generic.statusbar = "changes color of highlighted text";
|
s_options_interface_alt_text_color_box.generic.statusbar = "changes color of highlighted text";
|
||||||
|
|
||||||
s_options_interface_conalpha_slider.generic.type = MTYPE_SLIDER;
|
s_options_interface_conalpha_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -352,7 +304,7 @@ void Options_Interface_MenuInit (void)
|
||||||
s_options_interface_simple_loadscreen_box.generic.y = y+=2*MENU_LINE_SIZE;
|
s_options_interface_simple_loadscreen_box.generic.y = y+=2*MENU_LINE_SIZE;
|
||||||
s_options_interface_simple_loadscreen_box.generic.name = "simple load screens";
|
s_options_interface_simple_loadscreen_box.generic.name = "simple load screens";
|
||||||
s_options_interface_simple_loadscreen_box.generic.callback = SimpleLoadscreenFunc;
|
s_options_interface_simple_loadscreen_box.generic.callback = SimpleLoadscreenFunc;
|
||||||
s_options_interface_simple_loadscreen_box.itemnames = yesno_names;
|
s_options_interface_simple_loadscreen_box.itemNames = yesno_names;
|
||||||
s_options_interface_simple_loadscreen_box.generic.statusbar = "toggles simple map load screen";
|
s_options_interface_simple_loadscreen_box.generic.statusbar = "toggles simple map load screen";
|
||||||
|
|
||||||
s_options_interface_newconback_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_interface_newconback_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -361,7 +313,7 @@ void Options_Interface_MenuInit (void)
|
||||||
s_options_interface_newconback_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_interface_newconback_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_interface_newconback_box.generic.name = "new console background";
|
s_options_interface_newconback_box.generic.name = "new console background";
|
||||||
s_options_interface_newconback_box.generic.callback = NewConbackFunc;
|
s_options_interface_newconback_box.generic.callback = NewConbackFunc;
|
||||||
s_options_interface_newconback_box.itemnames = yesno_names;
|
s_options_interface_newconback_box.itemNames = yesno_names;
|
||||||
s_options_interface_newconback_box.generic.statusbar = "enables Q3-style console background";
|
s_options_interface_newconback_box.generic.statusbar = "enables Q3-style console background";
|
||||||
|
|
||||||
s_options_interface_noalttab_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_interface_noalttab_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -370,7 +322,7 @@ void Options_Interface_MenuInit (void)
|
||||||
s_options_interface_noalttab_box.generic.y = y+=2*MENU_LINE_SIZE;
|
s_options_interface_noalttab_box.generic.y = y+=2*MENU_LINE_SIZE;
|
||||||
s_options_interface_noalttab_box.generic.name = "disable alt-tab";
|
s_options_interface_noalttab_box.generic.name = "disable alt-tab";
|
||||||
s_options_interface_noalttab_box.generic.callback = NoAltTabFunc;
|
s_options_interface_noalttab_box.generic.callback = NoAltTabFunc;
|
||||||
s_options_interface_noalttab_box.itemnames = yesno_names;
|
s_options_interface_noalttab_box.itemNames = yesno_names;
|
||||||
s_options_interface_noalttab_box.generic.statusbar = "disables alt-tabbing to desktop";
|
s_options_interface_noalttab_box.generic.statusbar = "disables alt-tabbing to desktop";
|
||||||
|
|
||||||
s_options_interface_defaults_action.generic.type = MTYPE_ACTION;
|
s_options_interface_defaults_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -378,7 +330,7 @@ void Options_Interface_MenuInit (void)
|
||||||
s_options_interface_defaults_action.generic.x = MENU_FONT_SIZE;
|
s_options_interface_defaults_action.generic.x = MENU_FONT_SIZE;
|
||||||
s_options_interface_defaults_action.generic.y = 18*MENU_LINE_SIZE;
|
s_options_interface_defaults_action.generic.y = 18*MENU_LINE_SIZE;
|
||||||
s_options_interface_defaults_action.generic.name = "reset defaults";
|
s_options_interface_defaults_action.generic.name = "reset defaults";
|
||||||
s_options_interface_defaults_action.generic.callback = InterfaceResetDefaultsFunc;
|
s_options_interface_defaults_action.generic.callback = M_InterfaceResetDefaultsFunc;
|
||||||
s_options_interface_defaults_action.generic.statusbar = "resets all interface settings to internal defaults";
|
s_options_interface_defaults_action.generic.statusbar = "resets all interface settings to internal defaults";
|
||||||
|
|
||||||
s_options_interface_back_action.generic.type = MTYPE_ACTION;
|
s_options_interface_back_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -404,7 +356,7 @@ void Options_Interface_MenuInit (void)
|
||||||
UI_AddMenuItem (&s_options_interface_menu, (void *) &s_options_interface_defaults_action);
|
UI_AddMenuItem (&s_options_interface_menu, (void *) &s_options_interface_defaults_action);
|
||||||
UI_AddMenuItem (&s_options_interface_menu, (void *) &s_options_interface_back_action);
|
UI_AddMenuItem (&s_options_interface_menu, (void *) &s_options_interface_back_action);
|
||||||
|
|
||||||
InterfaceSetMenuItemValues ();
|
M_InterfaceSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Interface_Draw (void)
|
void Menu_Options_Interface_Draw (void)
|
||||||
|
|
|
@ -98,9 +98,7 @@ static void M_UnbindCommand (char *command)
|
||||||
|
|
||||||
static void M_FindKeysForCommand (char *command, int *twokeys)
|
static void M_FindKeysForCommand (char *command, int *twokeys)
|
||||||
{
|
{
|
||||||
int count;
|
int count, j, l;
|
||||||
int j;
|
|
||||||
int l;
|
|
||||||
char *b;
|
char *b;
|
||||||
|
|
||||||
twokeys[0] = twokeys[1] = -1;
|
twokeys[0] = twokeys[1] = -1;
|
||||||
|
@ -125,7 +123,7 @@ static void M_FindKeysForCommand (char *command, int *twokeys)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void KeysBackCursorDrawFunc (menuaction_s *self) // back action
|
static void M_KeysBackCursorDrawFunc (menuaction_s *self) // back action
|
||||||
{
|
{
|
||||||
char *cursor;
|
char *cursor;
|
||||||
|
|
||||||
|
@ -137,7 +135,7 @@ static void KeysBackCursorDrawFunc (menuaction_s *self) // back action
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void KeyCursorDrawFunc (menuframework_s *menu)
|
static void M_KeyCursorDrawFunc (menuframework_s *menu)
|
||||||
{
|
{
|
||||||
char *cursor;
|
char *cursor;
|
||||||
|
|
||||||
|
@ -156,7 +154,7 @@ static void KeyCursorDrawFunc (menuframework_s *menu)
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DrawKeyBindingFunc (void *self)
|
static void M_DrawKeyBindingFunc (void *self)
|
||||||
{
|
{
|
||||||
int keys[2];
|
int keys[2];
|
||||||
menuaction_s *a = (menuaction_s *) self;
|
menuaction_s *a = (menuaction_s *) self;
|
||||||
|
@ -190,32 +188,32 @@ static void DrawKeyBindingFunc (void *self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void KeyBindingFunc (void *self)
|
static void M_KeyBindingFunc (void *self)
|
||||||
{
|
{
|
||||||
menuaction_s *a = ( menuaction_s * ) self;
|
menuaction_s *a = ( menuaction_s * ) self;
|
||||||
int keys[2];
|
int keys[2];
|
||||||
|
|
||||||
M_FindKeysForCommand( bindnames[a->generic.localdata[0]][0], keys );
|
M_FindKeysForCommand (bindnames[a->generic.localdata[0]][0], keys);
|
||||||
|
|
||||||
if (keys[1] != -1)
|
if (keys[1] != -1)
|
||||||
M_UnbindCommand( bindnames[a->generic.localdata[0]][0]);
|
M_UnbindCommand (bindnames[a->generic.localdata[0]][0]);
|
||||||
|
|
||||||
bind_grab = true;
|
bind_grab = true;
|
||||||
|
|
||||||
UI_SetMenuStatusBar (&s_keys_menu, "press a key or button for this action");
|
UI_SetMenuStatusBar (&s_keys_menu, "press a key or button for this action");
|
||||||
}
|
}
|
||||||
|
|
||||||
void addBindOption (int i, char *list[][2])
|
void M_AddBindOption (int i, char *list[][2])
|
||||||
{
|
{
|
||||||
s_keys_binds[i].generic.type = MTYPE_ACTION;
|
s_keys_binds[i].generic.type = MTYPE_ACTION;
|
||||||
s_keys_binds[i].generic.textSize = MENU_FONT_SIZE;
|
s_keys_binds[i].generic.textSize = MENU_FONT_SIZE;
|
||||||
s_keys_binds[i].generic.flags = QMF_GRAYED;
|
s_keys_binds[i].generic.flags = QMF_GRAYED;
|
||||||
s_keys_binds[i].generic.x = 0;
|
s_keys_binds[i].generic.x = 0;
|
||||||
s_keys_binds[i].generic.y = i*MENU_LINE_SIZE;
|
s_keys_binds[i].generic.y = i*MENU_LINE_SIZE;
|
||||||
s_keys_binds[i].generic.ownerdraw = DrawKeyBindingFunc;
|
s_keys_binds[i].generic.ownerdraw = M_DrawKeyBindingFunc;
|
||||||
s_keys_binds[i].generic.localdata[0] = i;
|
s_keys_binds[i].generic.localdata[0] = i;
|
||||||
s_keys_binds[i].generic.name = list[s_keys_binds[i].generic.localdata[0]][1];
|
s_keys_binds[i].generic.name = list[s_keys_binds[i].generic.localdata[0]][1];
|
||||||
s_keys_binds[i].generic.callback = KeyBindingFunc;
|
s_keys_binds[i].generic.callback = M_KeyBindingFunc;
|
||||||
|
|
||||||
if (strstr ("MENUSPACE", list[i][0]))
|
if (strstr ("MENUSPACE", list[i][0]))
|
||||||
s_keys_binds[i].generic.type = MTYPE_SEPARATOR;
|
s_keys_binds[i].generic.type = MTYPE_SEPARATOR;
|
||||||
|
@ -229,11 +227,11 @@ static void Menu_Keys_Init (void)
|
||||||
s_keys_menu.x = SCREEN_WIDTH*0.5;
|
s_keys_menu.x = SCREEN_WIDTH*0.5;
|
||||||
s_keys_menu.y = SCREEN_HEIGHT*0.5 - 72;
|
s_keys_menu.y = SCREEN_HEIGHT*0.5 - 72;
|
||||||
s_keys_menu.nitems = 0;
|
s_keys_menu.nitems = 0;
|
||||||
s_keys_menu.cursordraw = KeyCursorDrawFunc;
|
s_keys_menu.cursordraw = M_KeyCursorDrawFunc;
|
||||||
|
|
||||||
BINDS_MAX = listSize(bindnames);
|
BINDS_MAX = listSize(bindnames);
|
||||||
for (i=0;i<BINDS_MAX;i++)
|
for (i=0;i<BINDS_MAX;i++)
|
||||||
addBindOption (i, bindnames);
|
M_AddBindOption (i, bindnames);
|
||||||
|
|
||||||
s_keys_back_action.generic.type = MTYPE_ACTION;
|
s_keys_back_action.generic.type = MTYPE_ACTION;
|
||||||
s_keys_back_action.generic.textSize = MENU_FONT_SIZE;
|
s_keys_back_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -242,7 +240,7 @@ static void Menu_Keys_Init (void)
|
||||||
s_keys_back_action.generic.y = (BINDS_MAX+2)*MENU_LINE_SIZE;
|
s_keys_back_action.generic.y = (BINDS_MAX+2)*MENU_LINE_SIZE;
|
||||||
s_keys_back_action.generic.name = " back";
|
s_keys_back_action.generic.name = " back";
|
||||||
s_keys_back_action.generic.callback = UI_BackMenu;
|
s_keys_back_action.generic.callback = UI_BackMenu;
|
||||||
s_keys_back_action.generic.cursordraw = KeysBackCursorDrawFunc;
|
s_keys_back_action.generic.cursordraw = M_KeysBackCursorDrawFunc;
|
||||||
|
|
||||||
for (i=0;i<BINDS_MAX;i++)
|
for (i=0;i<BINDS_MAX;i++)
|
||||||
UI_AddMenuItem (&s_keys_menu, (void *) &s_keys_binds[i]);
|
UI_AddMenuItem (&s_keys_menu, (void *) &s_keys_binds[i]);
|
||||||
|
@ -265,7 +263,7 @@ static const char *Menu_Keys_Key (int key)
|
||||||
{
|
{
|
||||||
menuaction_s *item = (menuaction_s *) UI_ItemAtMenuCursor( &s_keys_menu );
|
menuaction_s *item = (menuaction_s *) UI_ItemAtMenuCursor( &s_keys_menu );
|
||||||
|
|
||||||
//pressing mouse1 to pick a new bind wont force bind/unbind itself - spaz
|
// pressing mouse1 to pick a new bind wont force bind/unbind itself - spaz
|
||||||
if ( bind_grab && !(ui_mousecursor.buttonused[MOUSEBUTTON1]&&key==K_MOUSE1))
|
if ( bind_grab && !(ui_mousecursor.buttonused[MOUSEBUTTON1]&&key==K_MOUSE1))
|
||||||
{
|
{
|
||||||
if ( key != K_ESCAPE && key != '`' )
|
if ( key != K_ESCAPE && key != '`' )
|
||||||
|
@ -293,7 +291,7 @@ static const char *Menu_Keys_Key (int key)
|
||||||
case K_ENTER:
|
case K_ENTER:
|
||||||
if (item == &s_keys_back_action) { // back action hack
|
if (item == &s_keys_back_action) { // back action hack
|
||||||
UI_BackMenu(item); return NULL; }
|
UI_BackMenu(item); return NULL; }
|
||||||
KeyBindingFunc (item);
|
M_KeyBindingFunc (item);
|
||||||
return menu_in_sound;
|
return menu_in_sound;
|
||||||
case K_BACKSPACE: // delete bindings
|
case K_BACKSPACE: // delete bindings
|
||||||
case K_DEL: // delete bindings
|
case K_DEL: // delete bindings
|
||||||
|
|
|
@ -50,115 +50,68 @@ static menulist_s s_options_screen_fps_box;
|
||||||
static menuaction_s s_options_screen_defaults_action;
|
static menuaction_s s_options_screen_defaults_action;
|
||||||
static menuaction_s s_options_screen_back_action;
|
static menuaction_s s_options_screen_back_action;
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
static void CrosshairFunc (void *unused)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_options_screen_crosshair_box, "crosshair");
|
||||||
|
}
|
||||||
|
|
||||||
// Psychospaz's changeable size crosshair
|
// Psychospaz's changeable size crosshair
|
||||||
static void CrosshairSizeFunc (void *unused)
|
static void CrosshairSizeFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "crosshair_scale", UI_MenuSlider_GetValue(&s_options_screen_crosshairscale_slider) );
|
UI_MenuSlider_SaveValue (&s_options_screen_crosshairscale_slider, "crosshair_scale");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CrosshairAlphaFunc (void *unused)
|
static void CrosshairAlphaFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "crosshair_alpha", UI_MenuSlider_GetValue(&s_options_screen_crosshairalpha_slider) );
|
UI_MenuSlider_SaveValue (&s_options_screen_crosshairalpha_slider, "crosshair_alpha");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CrosshairPulseFunc (void *unused)
|
static void CrosshairPulseFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "crosshair_pulse", UI_MenuSlider_GetValue(&s_options_screen_crosshairpulse_slider) );
|
UI_MenuSlider_SaveValue (&s_options_screen_crosshairpulse_slider, "crosshair_pulse");
|
||||||
}
|
}
|
||||||
|
|
||||||
// hud scaling option
|
// hud scaling option
|
||||||
static void HudScaleFunc (void *unused)
|
static void HudScaleFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "scr_hudsize", UI_MenuSlider_GetValue(&s_options_screen_hudscale_slider) );
|
UI_MenuSlider_SaveValue (&s_options_screen_hudscale_slider, "scr_hudsize");
|
||||||
}
|
}
|
||||||
|
|
||||||
// hud trans option
|
// hud trans option
|
||||||
static void HudAlphaFunc (void *unused)
|
static void HudAlphaFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "scr_hudalpha", UI_MenuSlider_GetValue(&s_options_screen_hudalpha_slider) );
|
UI_MenuSlider_SaveValue (&s_options_screen_hudalpha_slider, "scr_hudalpha");
|
||||||
}
|
}
|
||||||
|
|
||||||
// hud squeeze digits option
|
// hud squeeze digits option
|
||||||
static void HudSqueezeDigitsFunc (void *unused)
|
static void HudSqueezeDigitsFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "scr_hudsqueezedigits", s_options_screen_hudsqueezedigits_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_options_screen_hudsqueezedigits_box, "scr_hudsqueezedigits");
|
||||||
}
|
}
|
||||||
|
|
||||||
// FPS counter option
|
// FPS counter option
|
||||||
static void FPSFunc (void *unused)
|
static void FPSFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_drawfps", s_options_screen_fps_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_options_screen_fps_box, "cl_drawfps");
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
=======================================================================
|
|
||||||
Crosshair loading
|
|
||||||
=======================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*static void OldCrosshairFunc (void *unused)
|
|
||||||
{
|
|
||||||
Cvar_SetValue( "crosshair", s_options_crosshair_box.curvalue );
|
|
||||||
}*/
|
|
||||||
|
|
||||||
static void CrosshairFunc (void *unused)
|
|
||||||
{
|
|
||||||
if (s_options_screen_crosshair_box.curvalue == 0) {
|
|
||||||
Cvar_SetValue( "crosshair", 0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
Cvar_SetValue( "crosshair", atoi(strdup(ui_crosshair_names[s_options_screen_crosshair_box.curvalue]+2)) );
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetCrosshairCursor (void)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
s_options_screen_crosshair_box.curvalue = 0;
|
|
||||||
|
|
||||||
if (ui_numcrosshairs > 1)
|
|
||||||
for (i=0; ui_crosshair_names[i]; i++)
|
|
||||||
{
|
|
||||||
if (!Q_strcasecmp(va("ch%i", (int)Cvar_VariableValue("crosshair")), ui_crosshair_names[i]))
|
|
||||||
{
|
|
||||||
s_options_screen_crosshair_box.curvalue = i;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
static void ScreenSetMenuItemValues (void)
|
static void M_ScreenSetMenuItemValues (void)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "crosshair", ClampCvar( 0, 100, Cvar_VariableValue("crosshair") ) );
|
UI_MenuSpinControl_SetValue (&s_options_screen_crosshair_box, "crosshair", 0, 100, true);
|
||||||
SetCrosshairCursor ();
|
UI_MenuSlider_SetValue (&s_options_screen_crosshairscale_slider, "crosshair_scale", 0.25f, 5.0f, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_screen_crosshairalpha_slider, "crosshair_alpha", 0.05f, 1.0f, true);
|
||||||
Cvar_SetValue( "crosshair_scale", ClampCvar( 0.25, 5, Cvar_VariableValue("crosshair_scale") ) );
|
UI_MenuSlider_SetValue (&s_options_screen_crosshairpulse_slider, "crosshair_pulse", 0.0f, 0.5f, true);
|
||||||
UI_MenuSlider_SetValue (&s_options_screen_crosshairscale_slider, Cvar_VariableValue("crosshair_scale"));
|
UI_MenuSlider_SetValue (&s_options_screen_hudscale_slider, "scr_hudsize", 0, 8, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_options_screen_hudalpha_slider, "scr_hudalpha", 0.0f, 1.0f, true);
|
||||||
Cvar_SetValue( "crosshair_alpha", ClampCvar( 0.05, 1, Cvar_VariableValue("crosshair_alpha") ) );
|
UI_MenuSpinControl_SetValue (&s_options_screen_hudsqueezedigits_box, "scr_hudsqueezedigits", 0, 1, true);
|
||||||
UI_MenuSlider_SetValue (&s_options_screen_crosshairalpha_slider, Cvar_VariableValue("crosshair_alpha"));
|
UI_MenuSpinControl_SetValue (&s_options_screen_fps_box, "cl_drawfps", 0, 1, true);
|
||||||
|
|
||||||
Cvar_SetValue( "crosshair_pulse", ClampCvar( 0, 0.5, Cvar_VariableValue("crosshair_pulse") ) );
|
|
||||||
UI_MenuSlider_SetValue (&s_options_screen_crosshairpulse_slider, Cvar_VariableValue("crosshair_pulse"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "scr_hudsize", ClampCvar( 0, 8, Cvar_VariableValue("scr_hudsize") ) );
|
|
||||||
UI_MenuSlider_SetValue (&s_options_screen_hudscale_slider, Cvar_VariableValue("scr_hudsize"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "scr_hudalpha", ClampCvar( 0, 1, Cvar_VariableValue("scr_hudalpha") ) );
|
|
||||||
UI_MenuSlider_SetValue (&s_options_screen_hudalpha_slider, Cvar_VariableValue("scr_hudalpha"));
|
|
||||||
|
|
||||||
Cvar_SetValue( "scr_hudsqueezedigits", ClampCvar( 0, 1, Cvar_VariableValue("scr_hudsqueezedigits") ) );
|
|
||||||
s_options_screen_hudsqueezedigits_box.curvalue = Cvar_VariableValue("scr_hudsqueezedigits");
|
|
||||||
|
|
||||||
Cvar_SetValue( "cl_drawfps", ClampCvar( 0, 1, Cvar_VariableValue("cl_drawfps") ) );
|
|
||||||
s_options_screen_fps_box.curvalue = Cvar_VariableValue("cl_drawfps");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ScreenResetDefaultsFunc (void *unused)
|
static void M_ScreenResetDefaultsFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetToDefault ("crosshair");
|
Cvar_SetToDefault ("crosshair");
|
||||||
Cvar_SetToDefault ("crosshair_scale");
|
Cvar_SetToDefault ("crosshair_scale");
|
||||||
|
@ -169,7 +122,7 @@ static void ScreenResetDefaultsFunc (void *unused)
|
||||||
Cvar_SetToDefault ("scr_hudsqueezedigits");
|
Cvar_SetToDefault ("scr_hudsqueezedigits");
|
||||||
Cvar_SetToDefault ("cl_drawfps");
|
Cvar_SetToDefault ("cl_drawfps");
|
||||||
|
|
||||||
ScreenSetMenuItemValues();
|
M_ScreenSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Screen_Init (void)
|
void Menu_Options_Screen_Init (void)
|
||||||
|
@ -199,7 +152,8 @@ void Menu_Options_Screen_Init (void)
|
||||||
s_options_screen_crosshair_box.generic.y = y;
|
s_options_screen_crosshair_box.generic.y = y;
|
||||||
s_options_screen_crosshair_box.generic.name = "crosshair";
|
s_options_screen_crosshair_box.generic.name = "crosshair";
|
||||||
s_options_screen_crosshair_box.generic.callback = CrosshairFunc;
|
s_options_screen_crosshair_box.generic.callback = CrosshairFunc;
|
||||||
s_options_screen_crosshair_box.itemnames = ui_crosshair_names;
|
s_options_screen_crosshair_box.itemNames = ui_crosshair_names;
|
||||||
|
s_options_screen_crosshair_box.itemValues = ui_crosshair_values;
|
||||||
s_options_screen_crosshair_box.generic.statusbar = "changes crosshair";
|
s_options_screen_crosshair_box.generic.statusbar = "changes crosshair";
|
||||||
|
|
||||||
// Psychospaz's changeable size crosshair
|
// Psychospaz's changeable size crosshair
|
||||||
|
@ -272,7 +226,7 @@ void Menu_Options_Screen_Init (void)
|
||||||
s_options_screen_hudsqueezedigits_box.generic.y = y += MENU_LINE_SIZE;
|
s_options_screen_hudsqueezedigits_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_options_screen_hudsqueezedigits_box.generic.name = "status bar digit squeezing";
|
s_options_screen_hudsqueezedigits_box.generic.name = "status bar digit squeezing";
|
||||||
s_options_screen_hudsqueezedigits_box.generic.callback = HudSqueezeDigitsFunc;
|
s_options_screen_hudsqueezedigits_box.generic.callback = HudSqueezeDigitsFunc;
|
||||||
s_options_screen_hudsqueezedigits_box.itemnames = yesno_names;
|
s_options_screen_hudsqueezedigits_box.itemNames = yesno_names;
|
||||||
s_options_screen_hudsqueezedigits_box.generic.statusbar = "enables showing of longer numbers on HUD";
|
s_options_screen_hudsqueezedigits_box.generic.statusbar = "enables showing of longer numbers on HUD";
|
||||||
|
|
||||||
s_options_screen_fps_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_screen_fps_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -281,7 +235,7 @@ void Menu_Options_Screen_Init (void)
|
||||||
s_options_screen_fps_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_options_screen_fps_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_options_screen_fps_box.generic.name = "FPS counter";
|
s_options_screen_fps_box.generic.name = "FPS counter";
|
||||||
s_options_screen_fps_box.generic.callback = FPSFunc;
|
s_options_screen_fps_box.generic.callback = FPSFunc;
|
||||||
s_options_screen_fps_box.itemnames = yesno_names;
|
s_options_screen_fps_box.itemNames = yesno_names;
|
||||||
s_options_screen_fps_box.generic.statusbar = "enables FPS counter";
|
s_options_screen_fps_box.generic.statusbar = "enables FPS counter";
|
||||||
|
|
||||||
s_options_screen_defaults_action.generic.type = MTYPE_ACTION;
|
s_options_screen_defaults_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -289,7 +243,7 @@ void Menu_Options_Screen_Init (void)
|
||||||
s_options_screen_defaults_action.generic.x = MENU_FONT_SIZE;
|
s_options_screen_defaults_action.generic.x = MENU_FONT_SIZE;
|
||||||
s_options_screen_defaults_action.generic.y = y+=2*MENU_LINE_SIZE;
|
s_options_screen_defaults_action.generic.y = y+=2*MENU_LINE_SIZE;
|
||||||
s_options_screen_defaults_action.generic.name = "reset defaults";
|
s_options_screen_defaults_action.generic.name = "reset defaults";
|
||||||
s_options_screen_defaults_action.generic.callback = ScreenResetDefaultsFunc;
|
s_options_screen_defaults_action.generic.callback = M_ScreenResetDefaultsFunc;
|
||||||
s_options_screen_defaults_action.generic.statusbar = "resets all screen settings to internal defaults";
|
s_options_screen_defaults_action.generic.statusbar = "resets all screen settings to internal defaults";
|
||||||
|
|
||||||
s_options_screen_back_action.generic.type = MTYPE_ACTION;
|
s_options_screen_back_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -311,7 +265,7 @@ void Menu_Options_Screen_Init (void)
|
||||||
UI_AddMenuItem (&s_options_screen_menu, (void *) &s_options_screen_defaults_action);
|
UI_AddMenuItem (&s_options_screen_menu, (void *) &s_options_screen_defaults_action);
|
||||||
UI_AddMenuItem (&s_options_screen_menu, (void *) &s_options_screen_back_action);
|
UI_AddMenuItem (&s_options_screen_menu, (void *) &s_options_screen_back_action);
|
||||||
|
|
||||||
ScreenSetMenuItemValues ();
|
M_ScreenSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Screen_Crosshair_MouseClick (void)
|
void Menu_Options_Screen_Crosshair_MouseClick (void)
|
||||||
|
@ -333,9 +287,9 @@ void Menu_Options_Screen_Crosshair_MouseClick (void)
|
||||||
{
|
{
|
||||||
if (!ui_mousecursor.buttonused[MOUSEBUTTON1] && (ui_mousecursor.buttonclicks[MOUSEBUTTON1] == 1) )
|
if (!ui_mousecursor.buttonused[MOUSEBUTTON1] && (ui_mousecursor.buttonclicks[MOUSEBUTTON1] == 1) )
|
||||||
{
|
{
|
||||||
s_options_screen_crosshair_box.curvalue++;
|
s_options_screen_crosshair_box.curValue++;
|
||||||
if (s_options_screen_crosshair_box.curvalue > ui_numcrosshairs-1)
|
if (s_options_screen_crosshair_box.curValue > ui_numcrosshairs-1)
|
||||||
s_options_screen_crosshair_box.curvalue = 0; // wrap around
|
s_options_screen_crosshair_box.curValue = 0; // wrap around
|
||||||
CrosshairFunc (NULL);
|
CrosshairFunc (NULL);
|
||||||
|
|
||||||
ui_mousecursor.buttonused[MOUSEBUTTON1] = true;
|
ui_mousecursor.buttonused[MOUSEBUTTON1] = true;
|
||||||
|
@ -346,9 +300,9 @@ void Menu_Options_Screen_Crosshair_MouseClick (void)
|
||||||
}
|
}
|
||||||
if (!ui_mousecursor.buttonused[MOUSEBUTTON2] && (ui_mousecursor.buttonclicks[MOUSEBUTTON2] == 1) )
|
if (!ui_mousecursor.buttonused[MOUSEBUTTON2] && (ui_mousecursor.buttonclicks[MOUSEBUTTON2] == 1) )
|
||||||
{
|
{
|
||||||
s_options_screen_crosshair_box.curvalue--;
|
s_options_screen_crosshair_box.curValue--;
|
||||||
if (s_options_screen_crosshair_box.curvalue < 0)
|
if (s_options_screen_crosshair_box.curValue < 0)
|
||||||
s_options_screen_crosshair_box.curvalue = ui_numcrosshairs-1; // wrap around
|
s_options_screen_crosshair_box.curValue = ui_numcrosshairs-1; // wrap around
|
||||||
CrosshairFunc (NULL);
|
CrosshairFunc (NULL);
|
||||||
|
|
||||||
ui_mousecursor.buttonused[MOUSEBUTTON2] = true;
|
ui_mousecursor.buttonused[MOUSEBUTTON2] = true;
|
||||||
|
@ -367,11 +321,11 @@ void Menu_Options_Screen_DrawCrosshair (void)
|
||||||
UI_DrawFill (SCREEN_WIDTH*0.5 - 17, s_options_screen_menu.y + 43,
|
UI_DrawFill (SCREEN_WIDTH*0.5 - 17, s_options_screen_menu.y + 43,
|
||||||
34, 34, ALIGN_CENTER, false, 0,0,0,255);
|
34, 34, ALIGN_CENTER, false, 0,0,0,255);
|
||||||
|
|
||||||
if (s_options_screen_crosshair_box.curvalue < 1)
|
if (s_options_screen_crosshair_box.curValue < 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
UI_DrawPic (SCREEN_WIDTH*0.5-16, s_options_screen_menu.y + 44,
|
UI_DrawPic (SCREEN_WIDTH*0.5-16, s_options_screen_menu.y + 44,
|
||||||
32, 32, ALIGN_CENTER, false, ui_crosshair_names[s_options_screen_crosshair_box.curvalue], 1.0);
|
32, 32, ALIGN_CENTER, false, ui_crosshair_names[s_options_screen_crosshair_box.curValue], 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Screen_Draw (void)
|
void Menu_Options_Screen_Draw (void)
|
||||||
|
|
|
@ -49,52 +49,32 @@ static menuaction_s s_options_sound_defaults_action;
|
||||||
static menuaction_s s_options_sound_back_action;
|
static menuaction_s s_options_sound_back_action;
|
||||||
|
|
||||||
|
|
||||||
static void UpdateVolumeFunc (void *unused)
|
static void VolumeFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "s_volume", UI_MenuSlider_GetValue(&s_options_sound_sfxvolume_slider) );
|
UI_MenuSlider_SaveValue (&s_options_sound_sfxvolume_slider, "s_volume");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UpdateMusicVolumeFunc (void *unused)
|
static void MusicVolumeFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "s_musicvolume", UI_MenuSlider_GetValue(&s_options_sound_musicvolume_slider) );
|
UI_MenuSlider_SaveValue (&s_options_sound_musicvolume_slider, "s_musicvolume");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UpdateOggMusicFunc (void *unused)
|
static void OggMusicFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_ogg_music", s_options_sound_oggmusic_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_sound_oggmusic_box, "cl_ogg_music");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UpdateCDVolumeFunc (void *unused)
|
static void CDVolumeFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cd_nocd", !s_options_sound_cdvolume_box.curvalue );
|
UI_MenuSpinControl_SaveValue (&s_options_sound_cdvolume_box, "cd_nocd");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UpdateSoundQualityFunc (void *unused)
|
static void M_UpdateSoundQualityFunc (void *unused)
|
||||||
{
|
{
|
||||||
// Knightmare- added DMP's 44/48 KHz sound support
|
UI_MenuSpinControl_SaveValue (&s_options_sound_quality_list, "s_khz");
|
||||||
//** DMP check the newly added sound quality menu options
|
Cvar_SetInteger ("s_loadas8bit", (s_options_sound_quality_list.curValue == 0));
|
||||||
switch (s_options_sound_quality_list.curvalue)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
Cvar_SetValue( "s_khz", 22 );
|
|
||||||
Cvar_SetValue( "s_loadas8bit", false );
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
Cvar_SetValue( "s_khz", 44 );
|
|
||||||
Cvar_SetValue( "s_loadas8bit", false );
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
Cvar_SetValue( "s_khz", 48 );
|
|
||||||
Cvar_SetValue( "s_loadas8bit", false );
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Cvar_SetValue( "s_khz", 11 );
|
|
||||||
Cvar_SetValue( "s_loadas8bit", true );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//** DMP end sound menu changes
|
|
||||||
|
|
||||||
Cvar_SetValue ("s_primary", s_options_sound_compatibility_list.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_options_sound_compatibility_list, "s_primary");
|
||||||
|
|
||||||
UI_DrawTextBox (168, 192, 36, 3);
|
UI_DrawTextBox (168, 192, 36, 3);
|
||||||
UI_DrawString (188, 192+MENU_FONT_SIZE, MENU_FONT_SIZE, S_COLOR_ALT"Restarting the sound system. This", 255);
|
UI_DrawString (188, 192+MENU_FONT_SIZE, MENU_FONT_SIZE, S_COLOR_ALT"Restarting the sound system. This", 255);
|
||||||
|
@ -107,26 +87,17 @@ static void UpdateSoundQualityFunc (void *unused)
|
||||||
CL_Snd_Restart_f();
|
CL_Snd_Restart_f();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SoundSetMenuItemValues (void)
|
static void M_SoundSetMenuItemValues (void)
|
||||||
{
|
{
|
||||||
UI_MenuSlider_SetValue (&s_options_sound_sfxvolume_slider, Cvar_VariableValue("s_volume"));
|
UI_MenuSlider_SetValue (&s_options_sound_sfxvolume_slider, "s_volume", 0.0f, 1.0f, true);
|
||||||
UI_MenuSlider_SetValue (&s_options_sound_musicvolume_slider, Cvar_VariableValue("s_musicvolume"));
|
UI_MenuSlider_SetValue (&s_options_sound_musicvolume_slider, "s_musicvolume", 0.0f, 1.0f, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_sound_oggmusic_box, "cl_ogg_music", 0, 1, true);
|
||||||
s_options_sound_oggmusic_box.curvalue = (Cvar_VariableValue("cl_ogg_music") > 0);
|
UI_MenuSpinControl_SetValue (&s_options_sound_cdvolume_box, "cd_nocd", 0, 0, false);
|
||||||
s_options_sound_cdvolume_box.curvalue = !Cvar_VariableValue("cd_nocd");
|
UI_MenuSpinControl_SetValue (&s_options_sound_quality_list, "s_khz", 0, 0, false);
|
||||||
//** DMP convert setting into index for option display text
|
UI_MenuSpinControl_SetValue (&s_options_sound_compatibility_list, "s_primary", 0, 1, true);
|
||||||
switch((int)Cvar_VariableValue("s_khz"))
|
|
||||||
{
|
|
||||||
case 48: s_options_sound_quality_list.curvalue = 3; break;
|
|
||||||
case 44: s_options_sound_quality_list.curvalue = 2; break;
|
|
||||||
case 22: s_options_sound_quality_list.curvalue = 1; break;
|
|
||||||
default: s_options_sound_quality_list.curvalue = 0; break;
|
|
||||||
}
|
|
||||||
//** DMP end sound menu changes
|
|
||||||
s_options_sound_compatibility_list.curvalue = Cvar_VariableValue( "s_primary");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SoundResetDefaultsFunc (void *unused)
|
static void M_SoundResetDefaultsFunc (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetToDefault ("s_volume");
|
Cvar_SetToDefault ("s_volume");
|
||||||
Cvar_SetToDefault ("cd_nocd");
|
Cvar_SetToDefault ("cd_nocd");
|
||||||
|
@ -145,7 +116,7 @@ static void SoundResetDefaultsFunc (void *unused)
|
||||||
|
|
||||||
CL_Snd_Restart_f();
|
CL_Snd_Restart_f();
|
||||||
|
|
||||||
SoundSetMenuItemValues();
|
M_SoundSetMenuItemValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Sound_Init (void)
|
void Menu_Options_Sound_Init (void)
|
||||||
|
@ -156,7 +127,12 @@ void Menu_Options_Sound_Init (void)
|
||||||
"enabled",
|
"enabled",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
static const char *cd_music_values[] =
|
||||||
|
{
|
||||||
|
"1",
|
||||||
|
"0",
|
||||||
|
0
|
||||||
|
};
|
||||||
static const char *quality_items[] =
|
static const char *quality_items[] =
|
||||||
{
|
{
|
||||||
"low (11KHz/8-bit)", //** DMP - changed text
|
"low (11KHz/8-bit)", //** DMP - changed text
|
||||||
|
@ -165,10 +141,19 @@ void Menu_Options_Sound_Init (void)
|
||||||
"highest (48KHz/16-bit)", //** DMP - added 48 Khz menu item
|
"highest (48KHz/16-bit)", //** DMP - added 48 Khz menu item
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
static const char *quality_values[] =
|
||||||
|
{
|
||||||
|
"11",
|
||||||
|
"22",
|
||||||
|
"44",
|
||||||
|
"48",
|
||||||
|
0
|
||||||
|
};
|
||||||
static const char *compatibility_items[] =
|
static const char *compatibility_items[] =
|
||||||
{
|
{
|
||||||
"max compatibility", "max performance", 0
|
"max compatibility",
|
||||||
|
"max performance",
|
||||||
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
int y = 3*MENU_LINE_SIZE;
|
int y = 3*MENU_LINE_SIZE;
|
||||||
|
@ -188,73 +173,75 @@ void Menu_Options_Sound_Init (void)
|
||||||
s_options_sound_sfxvolume_slider.generic.x = 0;
|
s_options_sound_sfxvolume_slider.generic.x = 0;
|
||||||
s_options_sound_sfxvolume_slider.generic.y = y;
|
s_options_sound_sfxvolume_slider.generic.y = y;
|
||||||
s_options_sound_sfxvolume_slider.generic.name = "effects volume";
|
s_options_sound_sfxvolume_slider.generic.name = "effects volume";
|
||||||
s_options_sound_sfxvolume_slider.generic.callback = UpdateVolumeFunc;
|
s_options_sound_sfxvolume_slider.generic.callback = VolumeFunc;
|
||||||
s_options_sound_sfxvolume_slider.maxPos = 20;
|
s_options_sound_sfxvolume_slider.maxPos = 20;
|
||||||
s_options_sound_sfxvolume_slider.baseValue = 0.0f;
|
s_options_sound_sfxvolume_slider.baseValue = 0.0f;
|
||||||
s_options_sound_sfxvolume_slider.increment = 0.05f;
|
s_options_sound_sfxvolume_slider.increment = 0.05f;
|
||||||
s_options_sound_sfxvolume_slider.displayAsPercent = true;
|
s_options_sound_sfxvolume_slider.displayAsPercent = true;
|
||||||
UI_MenuSlider_SetValue (&s_options_sound_sfxvolume_slider, Cvar_VariableValue("s_volume"));
|
|
||||||
s_options_sound_sfxvolume_slider.generic.statusbar = "volume of sound effects";
|
s_options_sound_sfxvolume_slider.generic.statusbar = "volume of sound effects";
|
||||||
|
UI_MenuSlider_SetValue (&s_options_sound_sfxvolume_slider, "s_volume", 0.0f, 1.0f, true);
|
||||||
|
|
||||||
s_options_sound_musicvolume_slider.generic.type = MTYPE_SLIDER;
|
s_options_sound_musicvolume_slider.generic.type = MTYPE_SLIDER;
|
||||||
s_options_sound_musicvolume_slider.generic.textSize = MENU_FONT_SIZE;
|
s_options_sound_musicvolume_slider.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_options_sound_musicvolume_slider.generic.x = 0;
|
s_options_sound_musicvolume_slider.generic.x = 0;
|
||||||
s_options_sound_musicvolume_slider.generic.y = y+=MENU_LINE_SIZE;
|
s_options_sound_musicvolume_slider.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_sound_musicvolume_slider.generic.name = "music volume";
|
s_options_sound_musicvolume_slider.generic.name = "music volume";
|
||||||
s_options_sound_musicvolume_slider.generic.callback = UpdateMusicVolumeFunc;
|
s_options_sound_musicvolume_slider.generic.callback = MusicVolumeFunc;
|
||||||
s_options_sound_musicvolume_slider.maxPos = 20;
|
s_options_sound_musicvolume_slider.maxPos = 20;
|
||||||
s_options_sound_musicvolume_slider.baseValue = 0.0f;
|
s_options_sound_musicvolume_slider.baseValue = 0.0f;
|
||||||
s_options_sound_musicvolume_slider.increment = 0.05f;
|
s_options_sound_musicvolume_slider.increment = 0.05f;
|
||||||
s_options_sound_musicvolume_slider.displayAsPercent = true;
|
s_options_sound_musicvolume_slider.displayAsPercent = true;
|
||||||
UI_MenuSlider_SetValue (&s_options_sound_musicvolume_slider, Cvar_VariableValue("s_musicvolume"));
|
|
||||||
s_options_sound_musicvolume_slider.generic.statusbar = "volume of ogg vorbis music";
|
s_options_sound_musicvolume_slider.generic.statusbar = "volume of ogg vorbis music";
|
||||||
|
UI_MenuSlider_SetValue (&s_options_sound_musicvolume_slider, "s_musicvolume", 0.0f, 1.0f, true);
|
||||||
|
|
||||||
s_options_sound_oggmusic_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_sound_oggmusic_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_options_sound_oggmusic_box.generic.textSize = MENU_FONT_SIZE;
|
s_options_sound_oggmusic_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_options_sound_oggmusic_box.generic.x = 0;
|
s_options_sound_oggmusic_box.generic.x = 0;
|
||||||
s_options_sound_oggmusic_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_sound_oggmusic_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_sound_oggmusic_box.generic.name = "ogg vorbis music";
|
s_options_sound_oggmusic_box.generic.name = "ogg vorbis music";
|
||||||
s_options_sound_oggmusic_box.generic.callback = UpdateOggMusicFunc;
|
s_options_sound_oggmusic_box.generic.callback = OggMusicFunc;
|
||||||
s_options_sound_oggmusic_box.itemnames = cd_music_items;
|
s_options_sound_oggmusic_box.itemNames = cd_music_items;
|
||||||
s_options_sound_oggmusic_box.curvalue = (Cvar_VariableValue("cl_ogg_music") > 0);
|
|
||||||
s_options_sound_oggmusic_box.generic.statusbar = "override of CD music with ogg vorbis tracks";
|
s_options_sound_oggmusic_box.generic.statusbar = "override of CD music with ogg vorbis tracks";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_sound_oggmusic_box,"cl_ogg_music", 0, 1, true);
|
||||||
|
|
||||||
s_options_sound_cdvolume_box.generic.type = MTYPE_SPINCONTROL;
|
s_options_sound_cdvolume_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_options_sound_cdvolume_box.generic.textSize = MENU_FONT_SIZE;
|
s_options_sound_cdvolume_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_options_sound_cdvolume_box.generic.x = 0;
|
s_options_sound_cdvolume_box.generic.x = 0;
|
||||||
s_options_sound_cdvolume_box.generic.y = y+=MENU_LINE_SIZE;
|
s_options_sound_cdvolume_box.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_sound_cdvolume_box.generic.name = "CD music";
|
s_options_sound_cdvolume_box.generic.name = "CD music";
|
||||||
s_options_sound_cdvolume_box.generic.callback = UpdateCDVolumeFunc;
|
s_options_sound_cdvolume_box.generic.callback = CDVolumeFunc;
|
||||||
s_options_sound_cdvolume_box.itemnames = cd_music_items;
|
s_options_sound_cdvolume_box.itemNames = cd_music_items;
|
||||||
s_options_sound_cdvolume_box.curvalue = !Cvar_VariableValue("cd_nocd");
|
s_options_sound_cdvolume_box.itemValues = cd_music_values;
|
||||||
s_options_sound_cdvolume_box.generic.statusbar = "enables or disables CD music";
|
s_options_sound_cdvolume_box.generic.statusbar = "enables or disables CD music";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_sound_cdvolume_box, "cd_nocd", 0, 0, false);
|
||||||
|
|
||||||
s_options_sound_quality_list.generic.type = MTYPE_SPINCONTROL;
|
s_options_sound_quality_list.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_options_sound_quality_list.generic.textSize = MENU_FONT_SIZE;
|
s_options_sound_quality_list.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_options_sound_quality_list.generic.x = 0;
|
s_options_sound_quality_list.generic.x = 0;
|
||||||
s_options_sound_quality_list.generic.y = y+=MENU_LINE_SIZE;
|
s_options_sound_quality_list.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_sound_quality_list.generic.name = "sound quality";
|
s_options_sound_quality_list.generic.name = "sound quality";
|
||||||
s_options_sound_quality_list.generic.callback = UpdateSoundQualityFunc;
|
s_options_sound_quality_list.generic.callback = M_UpdateSoundQualityFunc;
|
||||||
s_options_sound_quality_list.itemnames = quality_items;
|
s_options_sound_quality_list.itemNames = quality_items;
|
||||||
s_options_sound_quality_list.curvalue = !Cvar_VariableValue( "s_loadas8bit" );
|
s_options_sound_quality_list.itemValues = quality_values;
|
||||||
s_options_sound_quality_list.generic.statusbar = "changes quality of sound";
|
s_options_sound_quality_list.generic.statusbar = "changes quality of sound";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_sound_quality_list, "s_khz", 0, 0, false);
|
||||||
|
|
||||||
s_options_sound_compatibility_list.generic.type = MTYPE_SPINCONTROL;
|
s_options_sound_compatibility_list.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_options_sound_compatibility_list.generic.textSize = MENU_FONT_SIZE;
|
s_options_sound_compatibility_list.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_options_sound_compatibility_list.generic.x = 0;
|
s_options_sound_compatibility_list.generic.x = 0;
|
||||||
s_options_sound_compatibility_list.generic.y = y+=MENU_LINE_SIZE;
|
s_options_sound_compatibility_list.generic.y = y+=MENU_LINE_SIZE;
|
||||||
s_options_sound_compatibility_list.generic.name = "sound compatibility";
|
s_options_sound_compatibility_list.generic.name = "sound compatibility";
|
||||||
s_options_sound_compatibility_list.generic.callback = UpdateSoundQualityFunc;
|
s_options_sound_compatibility_list.generic.callback = M_UpdateSoundQualityFunc;
|
||||||
s_options_sound_compatibility_list.itemnames = compatibility_items;
|
s_options_sound_compatibility_list.itemNames = compatibility_items;
|
||||||
s_options_sound_compatibility_list.curvalue = Cvar_VariableValue( "s_primary" );
|
|
||||||
s_options_sound_compatibility_list.generic.statusbar = "changes buffering mode of sound system";
|
s_options_sound_compatibility_list.generic.statusbar = "changes buffering mode of sound system";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_options_sound_compatibility_list, "s_primary", 0, 1, true);
|
||||||
|
|
||||||
s_options_sound_defaults_action.generic.type = MTYPE_ACTION;
|
s_options_sound_defaults_action.generic.type = MTYPE_ACTION;
|
||||||
s_options_sound_defaults_action.generic.textSize = MENU_FONT_SIZE;
|
s_options_sound_defaults_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_options_sound_defaults_action.generic.x = MENU_FONT_SIZE;
|
s_options_sound_defaults_action.generic.x = MENU_FONT_SIZE;
|
||||||
s_options_sound_defaults_action.generic.y = 18*MENU_LINE_SIZE;
|
s_options_sound_defaults_action.generic.y = 18*MENU_LINE_SIZE;
|
||||||
s_options_sound_defaults_action.generic.name = "reset defaults";
|
s_options_sound_defaults_action.generic.name = "reset defaults";
|
||||||
s_options_sound_defaults_action.generic.callback = SoundResetDefaultsFunc;
|
s_options_sound_defaults_action.generic.callback = M_SoundResetDefaultsFunc;
|
||||||
s_options_sound_defaults_action.generic.statusbar = "resets all sound settings to internal defaults";
|
s_options_sound_defaults_action.generic.statusbar = "resets all sound settings to internal defaults";
|
||||||
|
|
||||||
s_options_sound_back_action.generic.type = MTYPE_ACTION;
|
s_options_sound_back_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -274,7 +261,7 @@ void Menu_Options_Sound_Init (void)
|
||||||
UI_AddMenuItem (&s_options_sound_menu, (void *) &s_options_sound_defaults_action);
|
UI_AddMenuItem (&s_options_sound_menu, (void *) &s_options_sound_defaults_action);
|
||||||
UI_AddMenuItem (&s_options_sound_menu, (void *) &s_options_sound_back_action);
|
UI_AddMenuItem (&s_options_sound_menu, (void *) &s_options_sound_back_action);
|
||||||
|
|
||||||
SoundSetMenuItemValues();
|
M_SoundSetMenuItemValues ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu_Options_Sound_Draw (void)
|
void Menu_Options_Sound_Draw (void)
|
||||||
|
|
344
ui/menu_video.c
344
ui/menu_video.c
|
@ -61,9 +61,11 @@ static menuaction_s s_defaults_action;
|
||||||
static menuaction_s s_apply_action;
|
static menuaction_s s_apply_action;
|
||||||
static menuaction_s s_backmain_action;
|
static menuaction_s s_backmain_action;
|
||||||
|
|
||||||
static void VidModeCallback (void *unused)
|
//=======================================================================
|
||||||
|
|
||||||
|
static void M_ShowCustomFields (void)
|
||||||
{
|
{
|
||||||
qboolean customHidden = (strcmp(ui_video_modes[s_mode_list.curvalue], "-1") != 0);
|
qboolean customHidden = (strcmp(ui_video_modes[s_mode_list.curValue], "-1") != 0);
|
||||||
|
|
||||||
s_customwidth_title.generic.flags = customHidden ? QMF_HIDDEN : 0;
|
s_customwidth_title.generic.flags = customHidden ? QMF_HIDDEN : 0;
|
||||||
s_customwidth_field.generic.flags = customHidden ? (QMF_NUMBERSONLY|QMF_HIDDEN) : QMF_NUMBERSONLY;
|
s_customwidth_field.generic.flags = customHidden ? (QMF_NUMBERSONLY|QMF_HIDDEN) : QMF_NUMBERSONLY;
|
||||||
|
@ -71,37 +73,58 @@ static void VidModeCallback (void *unused)
|
||||||
s_customheight_field.generic.flags = customHidden ? (QMF_NUMBERSONLY|QMF_HIDDEN) : QMF_NUMBERSONLY;
|
s_customheight_field.generic.flags = customHidden ? (QMF_NUMBERSONLY|QMF_HIDDEN) : QMF_NUMBERSONLY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void VidModeCallback (void *unused)
|
||||||
|
{
|
||||||
|
M_ShowCustomFields ();
|
||||||
|
}
|
||||||
|
|
||||||
static void BrightnessCallback (void *s)
|
static void BrightnessCallback (void *s)
|
||||||
{
|
{
|
||||||
// invert sense so greater = brighter, and scale to a range of 0.3 to 1.3
|
UI_MenuSlider_SaveValue (&s_brightness_slider, "vid_gamma");
|
||||||
Cvar_SetValue( "vid_gamma", UI_MenuSlider_GetValue(&s_brightness_slider) );
|
}
|
||||||
|
|
||||||
|
static void AnisoCallback (void *s)
|
||||||
|
{
|
||||||
|
UI_MenuSpinControl_SaveValue (&s_aniso_box, "r_anisotropic");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void VsyncCallback (void *unused)
|
static void VsyncCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "r_swapinterval", s_vsync_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_vsync_box, "r_swapinterval");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AdjustFOVCallback (void *unused)
|
static void AdjustFOVCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_widescreen_fov", s_adjust_fov_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_adjust_fov_box, "cl_widescreen_fov");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AsyncCallback (void *unused)
|
static void AsyncCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue( "cl_async", s_async_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_async_box, "cl_async");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AdvancedOptions (void *s)
|
static void M_AdvancedOptions (void *s)
|
||||||
{
|
{
|
||||||
Menu_Video_Advanced_f ();
|
Menu_Video_Advanced_f ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ResetVideoDefaults (void *unused)
|
//=======================================================================
|
||||||
|
|
||||||
|
static void M_PrepareVideoRefresh (void)
|
||||||
{
|
{
|
||||||
|
// set the right mode for refresh
|
||||||
|
Cvar_Set( "vid_ref", "gl" );
|
||||||
|
Cvar_Set( "gl_driver", "opengl32" );
|
||||||
|
|
||||||
|
// tell them they're modified so they refresh
|
||||||
|
vid_ref->modified = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void M_ResetVideoDefaults (void *unused)
|
||||||
|
{
|
||||||
|
Cvar_SetToDefault ("r_mode");
|
||||||
Cvar_SetToDefault ("vid_fullscreen");
|
Cvar_SetToDefault ("vid_fullscreen");
|
||||||
Cvar_SetToDefault ("vid_gamma");
|
Cvar_SetToDefault ("vid_gamma");
|
||||||
Cvar_SetToDefault ("r_mode");
|
|
||||||
Cvar_SetToDefault ("r_texturemode");
|
Cvar_SetToDefault ("r_texturemode");
|
||||||
Cvar_SetToDefault ("r_anisotropic");
|
Cvar_SetToDefault ("r_anisotropic");
|
||||||
Cvar_SetToDefault ("r_picmip");
|
Cvar_SetToDefault ("r_picmip");
|
||||||
|
@ -140,29 +163,18 @@ static void ResetVideoDefaults (void *unused)
|
||||||
Menu_Video_Init();
|
Menu_Video_Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Menu_PrepareVideoRefresh (void)
|
static void M_ApplyVideoChanges (void *unused)
|
||||||
{
|
|
||||||
// set the right mode for refresh
|
|
||||||
Cvar_Set( "vid_ref", "gl" );
|
|
||||||
Cvar_Set( "gl_driver", "opengl32" );
|
|
||||||
|
|
||||||
// tell them they're modified so they refresh
|
|
||||||
vid_ref->modified = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void Menu_ApplyVideoChanges (void *unused)
|
|
||||||
{
|
{
|
||||||
int customW, customH;
|
int customW, customH;
|
||||||
char *customStr;
|
char *customStr;
|
||||||
|
|
||||||
Cvar_Set ("r_mode", ui_video_modes[s_mode_list.curvalue]);
|
UI_MenuSpinControl_SaveValue (&s_mode_list, "r_mode");
|
||||||
if (strcmp(ui_video_modes[s_mode_list.curvalue], "-1") == 0) // use custom mode fields
|
if (strcmp(ui_video_modes[s_mode_list.curValue], "-1") == 0) // use custom mode fields
|
||||||
{
|
{
|
||||||
customW = atoi( s_customwidth_field.buffer );
|
customW = atoi(s_customwidth_field.buffer);
|
||||||
customH = atoi( s_customheight_field.buffer );
|
customH = atoi(s_customheight_field.buffer);
|
||||||
Cvar_SetValue ("r_customwidth", ClampCvar( 640, 99999, customW ));
|
Cvar_SetInteger ("r_customwidth", ClampCvar( 640, 99999, customW ));
|
||||||
Cvar_SetValue ("r_customheight", ClampCvar( 480, 99999, customH ));
|
Cvar_SetInteger ("r_customheight", ClampCvar( 480, 99999, customH ));
|
||||||
|
|
||||||
// update fields in case values were clamped
|
// update fields in case values were clamped
|
||||||
customStr = Cvar_VariableString("r_customwidth");
|
customStr = Cvar_VariableString("r_customwidth");
|
||||||
|
@ -173,160 +185,25 @@ static void Menu_ApplyVideoChanges (void *unused)
|
||||||
Q_strncpyz (s_customheight_field.buffer, sizeof(s_customwidth_field.buffer), customStr);
|
Q_strncpyz (s_customheight_field.buffer, sizeof(s_customwidth_field.buffer), customStr);
|
||||||
s_customheight_field.cursor = (int)strlen(customStr);
|
s_customheight_field.cursor = (int)strlen(customStr);
|
||||||
}
|
}
|
||||||
Cvar_SetValue( "vid_fullscreen", s_fs_box.curvalue );
|
|
||||||
Cvar_SetValue( "vid_gamma", UI_MenuSlider_GetValue(&s_brightness_slider) );
|
|
||||||
Cvar_SetValue( "r_picmip", 4-s_texqual_box.curvalue );
|
|
||||||
|
|
||||||
// Knightmare- refesh rate option
|
UI_MenuSpinControl_SaveValue (&s_fs_box, "vid_fullscreen");
|
||||||
switch (s_refresh_box.curvalue)
|
UI_MenuSlider_SaveValue (&s_brightness_slider, "vid_gamma");
|
||||||
{
|
UI_MenuSpinControl_SaveValue (&s_texfilter_box, "r_texturemode");
|
||||||
case 14:
|
UI_MenuSpinControl_SaveValue (&s_aniso_box, "r_anisotropic");
|
||||||
Cvar_SetValue ("r_displayrefresh", 240);
|
UI_MenuSpinControl_SaveValue (&s_texqual_box, "r_picmip");
|
||||||
break;
|
UI_MenuSpinControl_SaveValue (&s_npot_mipmap_box, "r_nonpoweroftwo_mipmaps");
|
||||||
case 13:
|
UI_MenuSpinControl_SaveValue (&s_sgis_mipmap_box, "r_sgis_generatemipmap");
|
||||||
Cvar_SetValue ("r_displayrefresh", 180);
|
// UI_MenuSpinControl_SaveValue (&s_texcompress_box, "r_ext_texture_compression");
|
||||||
break;
|
UI_MenuSpinControl_SaveValue (&s_vsync_box, "r_swapinterval");
|
||||||
case 12:
|
UI_MenuSpinControl_SaveValue (&s_refresh_box, "r_displayrefresh");
|
||||||
Cvar_SetValue ("r_displayrefresh", 165);
|
UI_MenuSpinControl_SaveValue (&s_adjust_fov_box, "cl_widescreen_fov");
|
||||||
break;
|
UI_MenuSpinControl_SaveValue (&s_async_box, "cl_async");
|
||||||
case 11:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 160);
|
|
||||||
break;
|
|
||||||
case 10:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 150);
|
|
||||||
break;
|
|
||||||
case 9:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 144);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 120);
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 110);
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 100);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 85);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 75);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 72);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 70);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 60);
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
default:
|
|
||||||
Cvar_SetValue ("r_displayrefresh", 0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s_texfilter_box.curvalue == 0)
|
M_PrepareVideoRefresh ();
|
||||||
Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_NEAREST");
|
|
||||||
else if (s_texfilter_box.curvalue == 1)
|
|
||||||
Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_LINEAR");
|
|
||||||
|
|
||||||
switch ((int)s_aniso_box.curvalue)
|
|
||||||
{
|
|
||||||
case 1: Cvar_SetValue( "r_anisotropic", 2.0 ); break;
|
|
||||||
case 2: Cvar_SetValue( "r_anisotropic", 4.0 ); break;
|
|
||||||
case 3: Cvar_SetValue( "r_anisotropic", 8.0 ); break;
|
|
||||||
case 4: Cvar_SetValue( "r_anisotropic", 16.0 ); break;
|
|
||||||
default:
|
|
||||||
case 0: Cvar_SetValue( "r_anisotropic", 0.0 ); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Cvar_SetValue( "r_nonpoweroftwo_mipmaps", s_npot_mipmap_box.curvalue );
|
|
||||||
Cvar_SetValue( "r_sgis_generatemipmap", s_sgis_mipmap_box.curvalue );
|
|
||||||
// Cvar_SetValue( "r_ext_texture_compression", s_texcompress_box.curvalue );
|
|
||||||
|
|
||||||
Cvar_SetValue( "r_swapinterval", s_vsync_box.curvalue );
|
|
||||||
Cvar_SetValue( "cl_widescreen_fov", s_adjust_fov_box.curvalue );
|
|
||||||
Cvar_SetValue( "cl_async", s_async_box.curvalue );
|
|
||||||
|
|
||||||
Menu_PrepareVideoRefresh ();
|
|
||||||
|
|
||||||
// UI_ForceMenuOff();
|
// UI_ForceMenuOff();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Knightmare added
|
|
||||||
int Menu_GetTexfilterCurValue (void)
|
|
||||||
{
|
|
||||||
char *texmode = Cvar_VariableString("r_texturemode");
|
|
||||||
if (!Q_strcasecmp(texmode, "GL_LINEAR_MIPMAP_NEAREST"))
|
|
||||||
return 0;
|
|
||||||
else
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Knightmare- refresh rate option
|
|
||||||
int Menu_GetRefreshCurValue (void)
|
|
||||||
{
|
|
||||||
int refreshVar = Cvar_VariableInteger ("r_displayrefresh");
|
|
||||||
|
|
||||||
if (refreshVar == 240)
|
|
||||||
return 14;
|
|
||||||
else if (refreshVar == 180)
|
|
||||||
return 13;
|
|
||||||
else if (refreshVar == 165)
|
|
||||||
return 12;
|
|
||||||
else if (refreshVar == 160)
|
|
||||||
return 11;
|
|
||||||
else if (refreshVar == 150)
|
|
||||||
return 10;
|
|
||||||
else if (refreshVar == 144)
|
|
||||||
return 9;
|
|
||||||
else if (refreshVar == 120)
|
|
||||||
return 8;
|
|
||||||
else if (refreshVar == 110)
|
|
||||||
return 7;
|
|
||||||
else if (refreshVar == 100)
|
|
||||||
return 6;
|
|
||||||
else if (refreshVar == 85)
|
|
||||||
return 5;
|
|
||||||
else if (refreshVar == 75)
|
|
||||||
return 4;
|
|
||||||
else if (refreshVar == 72)
|
|
||||||
return 3;
|
|
||||||
else if (refreshVar == 70)
|
|
||||||
return 2;
|
|
||||||
else if (refreshVar == 60)
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Knightmare- anisotropic option
|
|
||||||
float Menu_GetAnisoCurValue (void)
|
|
||||||
{
|
|
||||||
float aniso_avail = Cvar_VariableValue("r_anisotropic_avail");
|
|
||||||
float anisoValue = ClampCvar (0, aniso_avail, Cvar_VariableValue("r_anisotropic"));
|
|
||||||
|
|
||||||
if (aniso_avail == 0) // not available
|
|
||||||
return 0;
|
|
||||||
if (anisoValue < 2.0)
|
|
||||||
return 0;
|
|
||||||
else if (anisoValue < 4.0)
|
|
||||||
return 1;
|
|
||||||
else if (anisoValue < 8.0)
|
|
||||||
return 2;
|
|
||||||
else if (anisoValue < 16.0)
|
|
||||||
return 3;
|
|
||||||
else // >= 16.0
|
|
||||||
return 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
Menu_Video_Init
|
Menu_Video_Init
|
||||||
|
@ -334,6 +211,12 @@ Menu_Video_Init
|
||||||
*/
|
*/
|
||||||
void Menu_Video_Init (void)
|
void Menu_Video_Init (void)
|
||||||
{
|
{
|
||||||
|
static const char *yesno_names[] =
|
||||||
|
{
|
||||||
|
"no",
|
||||||
|
"yes",
|
||||||
|
0
|
||||||
|
};
|
||||||
static const char *fullscreen_names[] =
|
static const char *fullscreen_names[] =
|
||||||
{
|
{
|
||||||
"windowed",
|
"windowed",
|
||||||
|
@ -360,18 +243,37 @@ void Menu_Video_Init (void)
|
||||||
"[240Hz ]",
|
"[240Hz ]",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
static const char *yesno_names[] =
|
static const char *refreshrate_values[] =
|
||||||
{
|
{
|
||||||
"no",
|
"0",
|
||||||
"yes",
|
"60",
|
||||||
|
"70",
|
||||||
|
"72",
|
||||||
|
"75",
|
||||||
|
"85",
|
||||||
|
"100",
|
||||||
|
"110",
|
||||||
|
"120",
|
||||||
|
"144",
|
||||||
|
"150",
|
||||||
|
"160",
|
||||||
|
"165",
|
||||||
|
"180",
|
||||||
|
"240",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
static const char *mip_names[] =
|
static const char *texfilter_names[] =
|
||||||
{
|
{
|
||||||
"bilinear",
|
"bilinear",
|
||||||
"trilinear",
|
"trilinear",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
static const char *texfilter_values[] =
|
||||||
|
{
|
||||||
|
"GL_LINEAR_MIPMAP_NEAREST",
|
||||||
|
"GL_LINEAR_MIPMAP_LINEAR",
|
||||||
|
0
|
||||||
|
};
|
||||||
static const char *lmh_names[] =
|
static const char *lmh_names[] =
|
||||||
{
|
{
|
||||||
"lowest",
|
"lowest",
|
||||||
|
@ -381,9 +283,17 @@ void Menu_Video_Init (void)
|
||||||
"highest",
|
"highest",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
static const char *lmh_values[] =
|
||||||
|
{
|
||||||
|
"4",
|
||||||
|
"3",
|
||||||
|
"2",
|
||||||
|
"1",
|
||||||
|
"0",
|
||||||
|
0
|
||||||
|
};
|
||||||
int y = 0;
|
int y = 0;
|
||||||
char *customStr;
|
char *customStr;
|
||||||
qboolean customHidden;
|
|
||||||
|
|
||||||
if ( !con_font_size )
|
if ( !con_font_size )
|
||||||
con_font_size = Cvar_Get ("con_font_size", "8", CVAR_ARCHIVE);
|
con_font_size = Cvar_Get ("con_font_size", "8", CVAR_ARCHIVE);
|
||||||
|
@ -398,22 +308,22 @@ void Menu_Video_Init (void)
|
||||||
s_mode_list.generic.name = "video mode";
|
s_mode_list.generic.name = "video mode";
|
||||||
s_mode_list.generic.x = 0;
|
s_mode_list.generic.x = 0;
|
||||||
s_mode_list.generic.y = y;
|
s_mode_list.generic.y = y;
|
||||||
s_mode_list.itemnames = ui_resolution_names;
|
s_mode_list.itemNames = ui_resolution_names;
|
||||||
|
s_mode_list.itemValues = ui_video_modes;
|
||||||
s_mode_list.generic.callback = VidModeCallback;
|
s_mode_list.generic.callback = VidModeCallback;
|
||||||
s_mode_list.curvalue = UI_GetIndexForStringValue(ui_video_modes, Cvar_VariableString("r_mode"));
|
|
||||||
s_mode_list.generic.statusbar = "changes screen resolution";
|
s_mode_list.generic.statusbar = "changes screen resolution";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_mode_list, "r_mode", 0, 0, false);
|
||||||
|
|
||||||
customHidden = (strcmp(ui_video_modes[s_mode_list.curvalue], "-1") != 0);
|
|
||||||
s_customwidth_title.generic.type = MTYPE_SEPARATOR;
|
s_customwidth_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_customwidth_title.generic.textSize = MENU_FONT_SIZE;
|
s_customwidth_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_customwidth_title.generic.flags = customHidden ? QMF_HIDDEN : 0;
|
s_customwidth_title.generic.flags = 0;
|
||||||
s_customwidth_title.generic.name = "custom width";
|
s_customwidth_title.generic.name = "custom width";
|
||||||
s_customwidth_title.generic.x = -2*MENU_FONT_SIZE;
|
s_customwidth_title.generic.x = -2*MENU_FONT_SIZE;
|
||||||
s_customwidth_title.generic.y = y += 1.5*MENU_LINE_SIZE;
|
s_customwidth_title.generic.y = y += 1.5*MENU_LINE_SIZE;
|
||||||
|
|
||||||
s_customwidth_field.generic.type = MTYPE_FIELD;
|
s_customwidth_field.generic.type = MTYPE_FIELD;
|
||||||
s_customwidth_field.generic.textSize = MENU_FONT_SIZE;
|
s_customwidth_field.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_customwidth_field.generic.flags = customHidden ? (QMF_NUMBERSONLY|QMF_HIDDEN) : QMF_NUMBERSONLY;
|
s_customwidth_field.generic.flags = QMF_NUMBERSONLY;
|
||||||
// s_customwidth_field.generic.name = "custom width";
|
// s_customwidth_field.generic.name = "custom width";
|
||||||
s_customwidth_field.generic.callback = 0;
|
s_customwidth_field.generic.callback = 0;
|
||||||
s_customwidth_field.generic.x = -14*MENU_FONT_SIZE;
|
s_customwidth_field.generic.x = -14*MENU_FONT_SIZE;
|
||||||
|
@ -426,14 +336,14 @@ void Menu_Video_Init (void)
|
||||||
|
|
||||||
s_customheight_title.generic.type = MTYPE_SEPARATOR;
|
s_customheight_title.generic.type = MTYPE_SEPARATOR;
|
||||||
s_customheight_title.generic.textSize = MENU_FONT_SIZE;
|
s_customheight_title.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_customheight_title.generic.flags = customHidden ? QMF_HIDDEN : 0;
|
s_customheight_title.generic.flags = 0;
|
||||||
s_customheight_title.generic.name = "custom height";
|
s_customheight_title.generic.name = "custom height";
|
||||||
s_customheight_title.generic.x = 14.5*MENU_FONT_SIZE;
|
s_customheight_title.generic.x = 14.5*MENU_FONT_SIZE;
|
||||||
s_customheight_title.generic.y = y;
|
s_customheight_title.generic.y = y;
|
||||||
|
|
||||||
s_customheight_field.generic.type = MTYPE_FIELD;
|
s_customheight_field.generic.type = MTYPE_FIELD;
|
||||||
s_customheight_field.generic.textSize = MENU_FONT_SIZE;
|
s_customheight_field.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_customheight_field.generic.flags = customHidden ? (QMF_NUMBERSONLY|QMF_HIDDEN) : QMF_NUMBERSONLY;
|
s_customheight_field.generic.flags = QMF_NUMBERSONLY;
|
||||||
// s_customheight_field.generic.name = "custom height";
|
// s_customheight_field.generic.name = "custom height";
|
||||||
s_customheight_field.generic.callback = 0;
|
s_customheight_field.generic.callback = 0;
|
||||||
s_customheight_field.generic.x = 2*MENU_FONT_SIZE;
|
s_customheight_field.generic.x = 2*MENU_FONT_SIZE;
|
||||||
|
@ -449,10 +359,10 @@ void Menu_Video_Init (void)
|
||||||
s_fs_box.generic.x = 0;
|
s_fs_box.generic.x = 0;
|
||||||
s_fs_box.generic.y = y += 3.5*MENU_LINE_SIZE;
|
s_fs_box.generic.y = y += 3.5*MENU_LINE_SIZE;
|
||||||
s_fs_box.generic.name = "display type"; // "fullscreen"
|
s_fs_box.generic.name = "display type"; // "fullscreen"
|
||||||
s_fs_box.itemnames = fullscreen_names; // yesno_names
|
s_fs_box.itemNames = fullscreen_names;
|
||||||
s_fs_box.curvalue = Cvar_VariableValue("vid_fullscreen");
|
|
||||||
// s_fs_box.generic.statusbar = "changes bettween fullscreen and windowed display";
|
// s_fs_box.generic.statusbar = "changes bettween fullscreen and windowed display";
|
||||||
s_fs_box.generic.statusbar = "changes bettween fullscreen, borderless window, and windowed display";
|
s_fs_box.generic.statusbar = "changes bettween fullscreen, borderless window, and windowed display";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_fs_box, "vid_fullscreen", 0, 2, true);
|
||||||
|
|
||||||
s_brightness_slider.generic.type = MTYPE_SLIDER;
|
s_brightness_slider.generic.type = MTYPE_SLIDER;
|
||||||
s_brightness_slider.generic.textSize = MENU_FONT_SIZE;
|
s_brightness_slider.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -464,62 +374,66 @@ void Menu_Video_Init (void)
|
||||||
s_brightness_slider.baseValue = 1.3f;
|
s_brightness_slider.baseValue = 1.3f;
|
||||||
s_brightness_slider.increment = -0.05f;
|
s_brightness_slider.increment = -0.05f;
|
||||||
s_brightness_slider.displayAsPercent = false;
|
s_brightness_slider.displayAsPercent = false;
|
||||||
UI_MenuSlider_SetValue (&s_brightness_slider, Cvar_VariableValue("vid_gamma"));
|
|
||||||
s_brightness_slider.generic.statusbar = "changes display brightness";
|
s_brightness_slider.generic.statusbar = "changes display brightness";
|
||||||
|
UI_MenuSlider_SetValue (&s_brightness_slider, "vid_gamma", 0.3f, 1.3f, true);
|
||||||
|
|
||||||
s_texfilter_box.generic.type = MTYPE_SPINCONTROL;
|
s_texfilter_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_texfilter_box.generic.textSize = MENU_FONT_SIZE;
|
s_texfilter_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_texfilter_box.generic.x = 0;
|
s_texfilter_box.generic.x = 0;
|
||||||
s_texfilter_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_texfilter_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_texfilter_box.generic.name = "texture filter";
|
s_texfilter_box.generic.name = "texture filter";
|
||||||
s_texfilter_box.curvalue = Menu_GetTexfilterCurValue();
|
s_texfilter_box.itemNames = texfilter_names;
|
||||||
s_texfilter_box.itemnames = mip_names;
|
s_texfilter_box.itemValues = texfilter_values;
|
||||||
s_texfilter_box.generic.statusbar = "changes texture filtering mode";
|
s_texfilter_box.generic.statusbar = "changes texture filtering mode";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_texfilter_box, "r_texturemode", 0, 0, false);
|
||||||
|
|
||||||
s_aniso_box.generic.type = MTYPE_SPINCONTROL;
|
s_aniso_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_aniso_box.generic.textSize = MENU_FONT_SIZE;
|
s_aniso_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_aniso_box.generic.x = 0;
|
s_aniso_box.generic.x = 0;
|
||||||
s_aniso_box.generic.y = y += MENU_LINE_SIZE;
|
s_aniso_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_aniso_box.generic.name = "anisotropic filter";
|
s_aniso_box.generic.name = "anisotropic filter";
|
||||||
s_aniso_box.curvalue = Menu_GetAnisoCurValue();
|
s_aniso_box.itemNames = ui_aniso_names;
|
||||||
s_aniso_box.itemnames = ui_aniso_names;
|
s_aniso_box.itemValues = ui_aniso_values;
|
||||||
|
s_aniso_box.generic.callback = AnisoCallback;
|
||||||
s_aniso_box.generic.statusbar = "changes level of anisotropic mipmap filtering";
|
s_aniso_box.generic.statusbar = "changes level of anisotropic mipmap filtering";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_aniso_box, "r_anisotropic", 0, 0, false);
|
||||||
|
|
||||||
s_texqual_box.generic.type = MTYPE_SPINCONTROL;
|
s_texqual_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_texqual_box.generic.textSize = MENU_FONT_SIZE;
|
s_texqual_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_texqual_box.generic.x = 0;
|
s_texqual_box.generic.x = 0;
|
||||||
s_texqual_box.generic.y = y += MENU_LINE_SIZE;
|
s_texqual_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_texqual_box.generic.name = "texture quality";
|
s_texqual_box.generic.name = "texture quality";
|
||||||
s_texqual_box.curvalue = ClampCvar (0, 4, 4-Cvar_VariableValue("r_picmip"));
|
s_texqual_box.itemNames = lmh_names;
|
||||||
s_texqual_box.itemnames = lmh_names;
|
s_texqual_box.itemValues = lmh_values;
|
||||||
s_texqual_box.generic.statusbar = "changes maximum texture size (highest = no limit)";
|
s_texqual_box.generic.statusbar = "changes maximum texture size (highest = no limit)";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_texqual_box, "r_picmip", 0, 0, false);
|
||||||
|
|
||||||
s_npot_mipmap_box.generic.type = MTYPE_SPINCONTROL;
|
s_npot_mipmap_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_npot_mipmap_box.generic.textSize = MENU_FONT_SIZE;
|
s_npot_mipmap_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_npot_mipmap_box.generic.x = 0;
|
s_npot_mipmap_box.generic.x = 0;
|
||||||
s_npot_mipmap_box.generic.y = y += MENU_LINE_SIZE;
|
s_npot_mipmap_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_npot_mipmap_box.generic.name = "non-power-of-2 mipmaps";
|
s_npot_mipmap_box.generic.name = "non-power-of-2 mipmaps";
|
||||||
s_npot_mipmap_box.itemnames = yesno_names;
|
s_npot_mipmap_box.itemNames = yesno_names;
|
||||||
s_npot_mipmap_box.curvalue = Cvar_VariableValue("r_nonpoweroftwo_mipmaps");
|
|
||||||
s_npot_mipmap_box.generic.statusbar = "enables non-power-of-2 mipmapped textures (requires driver support)";
|
s_npot_mipmap_box.generic.statusbar = "enables non-power-of-2 mipmapped textures (requires driver support)";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_npot_mipmap_box, "r_nonpoweroftwo_mipmaps", 0, 1, true);
|
||||||
|
|
||||||
s_sgis_mipmap_box.generic.type = MTYPE_SPINCONTROL;
|
s_sgis_mipmap_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_sgis_mipmap_box.generic.textSize = MENU_FONT_SIZE;
|
s_sgis_mipmap_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_sgis_mipmap_box.generic.x = 0;
|
s_sgis_mipmap_box.generic.x = 0;
|
||||||
s_sgis_mipmap_box.generic.y = y += MENU_LINE_SIZE;
|
s_sgis_mipmap_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_sgis_mipmap_box.generic.name = "SGIS mipmaps";
|
s_sgis_mipmap_box.generic.name = "SGIS mipmaps";
|
||||||
s_sgis_mipmap_box.itemnames = yesno_names;
|
s_sgis_mipmap_box.itemNames = yesno_names;
|
||||||
s_sgis_mipmap_box.curvalue = Cvar_VariableValue("r_sgis_generatemipmap");
|
|
||||||
s_sgis_mipmap_box.generic.statusbar = "enables driver-based mipmap generation";
|
s_sgis_mipmap_box.generic.statusbar = "enables driver-based mipmap generation";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_sgis_mipmap_box, "r_sgis_generatemipmap", 0, 1, true);
|
||||||
/*
|
/*
|
||||||
s_texcompress_box.generic.type = MTYPE_SPINCONTROL;
|
s_texcompress_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_texcompress_box.generic.textSize = MENU_FONT_SIZE;
|
s_texcompress_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_texcompress_box.generic.x = 0;
|
s_texcompress_box.generic.x = 0;
|
||||||
s_texcompress_box.generic.y = y += MENU_LINE_SIZE;
|
s_texcompress_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_texcompress_box.generic.name = "texture compression";
|
s_texcompress_box.generic.name = "texture compression";
|
||||||
s_texcompress_box.curvalue = Cvar_VariableValue("r_ext_texture_compression");
|
s_texcompress_box.itemNames = yesno_names;
|
||||||
s_texcompress_box.itemnames = yesno_names;
|
|
||||||
s_texcompress_box.generic.statusbar = "reduces quality, increases performance (leave off unless needed)";
|
s_texcompress_box.generic.statusbar = "reduces quality, increases performance (leave off unless needed)";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_texcompress_box, "r_ext_texture_compression", 0, 1, true);
|
||||||
*/
|
*/
|
||||||
s_vsync_box.generic.type = MTYPE_SPINCONTROL;
|
s_vsync_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_vsync_box.generic.textSize = MENU_FONT_SIZE;
|
s_vsync_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -527,9 +441,9 @@ void Menu_Video_Init (void)
|
||||||
s_vsync_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_vsync_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_vsync_box.generic.name = "video sync";
|
s_vsync_box.generic.name = "video sync";
|
||||||
s_vsync_box.generic.callback = VsyncCallback;
|
s_vsync_box.generic.callback = VsyncCallback;
|
||||||
s_vsync_box.curvalue = Cvar_VariableValue("r_swapinterval");
|
s_vsync_box.itemNames = yesno_names;
|
||||||
s_vsync_box.itemnames = yesno_names;
|
|
||||||
s_vsync_box.generic.statusbar = "sync framerate with monitor refresh";
|
s_vsync_box.generic.statusbar = "sync framerate with monitor refresh";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_vsync_box, "r_swapinterval", 0, 1, true);
|
||||||
|
|
||||||
// Knightmare- refresh rate option
|
// Knightmare- refresh rate option
|
||||||
s_refresh_box.generic.type = MTYPE_SPINCONTROL;
|
s_refresh_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -537,9 +451,10 @@ void Menu_Video_Init (void)
|
||||||
s_refresh_box.generic.x = 0;
|
s_refresh_box.generic.x = 0;
|
||||||
s_refresh_box.generic.y = y += MENU_LINE_SIZE;
|
s_refresh_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_refresh_box.generic.name = "refresh rate";
|
s_refresh_box.generic.name = "refresh rate";
|
||||||
s_refresh_box.curvalue = Menu_GetRefreshCurValue();
|
s_refresh_box.itemNames = refreshrate_names;
|
||||||
s_refresh_box.itemnames = refreshrate_names;
|
s_refresh_box.itemValues = refreshrate_values;
|
||||||
s_refresh_box.generic.statusbar = "sets refresh rate for fullscreen modes";
|
s_refresh_box.generic.statusbar = "sets refresh rate for fullscreen modes";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_refresh_box, "r_displayrefresh", 0, 0, false);
|
||||||
|
|
||||||
s_adjust_fov_box.generic.type = MTYPE_SPINCONTROL;
|
s_adjust_fov_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_adjust_fov_box.generic.textSize = MENU_FONT_SIZE;
|
s_adjust_fov_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -547,9 +462,9 @@ void Menu_Video_Init (void)
|
||||||
s_adjust_fov_box.generic.y = y += MENU_LINE_SIZE;
|
s_adjust_fov_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_adjust_fov_box.generic.name = "fov autoscaling";
|
s_adjust_fov_box.generic.name = "fov autoscaling";
|
||||||
s_adjust_fov_box.generic.callback = AdjustFOVCallback;
|
s_adjust_fov_box.generic.callback = AdjustFOVCallback;
|
||||||
s_adjust_fov_box.curvalue = Cvar_VariableValue("cl_widescreen_fov");
|
s_adjust_fov_box.itemNames = yesno_names;
|
||||||
s_adjust_fov_box.itemnames = yesno_names;
|
|
||||||
s_adjust_fov_box.generic.statusbar = "automatic scaling of fov for widescreen modes";
|
s_adjust_fov_box.generic.statusbar = "automatic scaling of fov for widescreen modes";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_adjust_fov_box, "cl_widescreen_fov", 0, 1, true);
|
||||||
|
|
||||||
s_async_box.generic.type = MTYPE_SPINCONTROL;
|
s_async_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_async_box.generic.textSize = MENU_FONT_SIZE;
|
s_async_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -557,23 +472,23 @@ void Menu_Video_Init (void)
|
||||||
s_async_box.generic.y = y += MENU_LINE_SIZE;
|
s_async_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_async_box.generic.name = "async refresh";
|
s_async_box.generic.name = "async refresh";
|
||||||
s_async_box.generic.callback = AsyncCallback;
|
s_async_box.generic.callback = AsyncCallback;
|
||||||
s_async_box.curvalue = Cvar_VariableValue("cl_async");
|
s_async_box.itemNames = yesno_names;
|
||||||
s_async_box.itemnames = yesno_names;
|
|
||||||
s_async_box.generic.statusbar = "decouples network framerate from render framerate";
|
s_async_box.generic.statusbar = "decouples network framerate from render framerate";
|
||||||
|
UI_MenuSpinControl_SetValue (&s_async_box, "cl_async", 0, 1, true);
|
||||||
|
|
||||||
s_advanced_action.generic.type = MTYPE_ACTION;
|
s_advanced_action.generic.type = MTYPE_ACTION;
|
||||||
s_advanced_action.generic.textSize = MENU_FONT_SIZE;
|
s_advanced_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_advanced_action.generic.name = "advanced options";
|
s_advanced_action.generic.name = "advanced options";
|
||||||
s_advanced_action.generic.x = 0;
|
s_advanced_action.generic.x = 0;
|
||||||
s_advanced_action.generic.y = y += 3*MENU_LINE_SIZE;
|
s_advanced_action.generic.y = y += 3*MENU_LINE_SIZE;
|
||||||
s_advanced_action.generic.callback = AdvancedOptions;
|
s_advanced_action.generic.callback = M_AdvancedOptions;
|
||||||
|
|
||||||
s_defaults_action.generic.type = MTYPE_ACTION;
|
s_defaults_action.generic.type = MTYPE_ACTION;
|
||||||
s_defaults_action.generic.textSize = MENU_FONT_SIZE;
|
s_defaults_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_defaults_action.generic.name = "reset to defaults";
|
s_defaults_action.generic.name = "reset to defaults";
|
||||||
s_defaults_action.generic.x = 0;
|
s_defaults_action.generic.x = 0;
|
||||||
s_defaults_action.generic.y = y += 3*MENU_LINE_SIZE;
|
s_defaults_action.generic.y = y += 3*MENU_LINE_SIZE;
|
||||||
s_defaults_action.generic.callback = ResetVideoDefaults;
|
s_defaults_action.generic.callback = M_ResetVideoDefaults;
|
||||||
s_defaults_action.generic.statusbar = "resets all video settings to internal defaults";
|
s_defaults_action.generic.statusbar = "resets all video settings to internal defaults";
|
||||||
|
|
||||||
// changed cancel to apply changes, thanx to MrG
|
// changed cancel to apply changes, thanx to MrG
|
||||||
|
@ -582,7 +497,7 @@ void Menu_Video_Init (void)
|
||||||
s_apply_action.generic.name = "apply changes";
|
s_apply_action.generic.name = "apply changes";
|
||||||
s_apply_action.generic.x = 0;
|
s_apply_action.generic.x = 0;
|
||||||
s_apply_action.generic.y = y += 2*MENU_LINE_SIZE;
|
s_apply_action.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_apply_action.generic.callback = Menu_ApplyVideoChanges;
|
s_apply_action.generic.callback = M_ApplyVideoChanges;
|
||||||
|
|
||||||
s_backmain_action.generic.type = MTYPE_ACTION;
|
s_backmain_action.generic.type = MTYPE_ACTION;
|
||||||
s_backmain_action.generic.textSize = MENU_FONT_SIZE;
|
s_backmain_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -653,4 +568,5 @@ void Menu_Video_f (void)
|
||||||
{
|
{
|
||||||
Menu_Video_Init ();
|
Menu_Video_Init ();
|
||||||
UI_PushMenu (Menu_Video_Draw, Menu_Video_Key);
|
UI_PushMenu (Menu_Video_Draw, Menu_Video_Key);
|
||||||
|
M_ShowCustomFields ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,224 +70,164 @@ static menulist_s s_upscale_font_box;
|
||||||
static menuaction_s s_advanced_apply_action;
|
static menuaction_s s_advanced_apply_action;
|
||||||
static menuaction_s s_back_action;
|
static menuaction_s s_back_action;
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
static void Video_Advanced_MenuSetValues (void)
|
|
||||||
{
|
|
||||||
char *sshotformat;
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_modulate", ClampCvar( 1, 2, Cvar_VariableValue("r_modulate") ));
|
|
||||||
UI_MenuSlider_SetValue (&s_lightmapscale_slider, Cvar_VariableValue("r_modulate"));
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_intensity", ClampCvar( 1, 2, Cvar_VariableValue("r_intensity") ));
|
|
||||||
UI_MenuSlider_SetValue (&s_textureintensity_slider, Cvar_VariableValue("r_intensity"));
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_rgbscale", ClampCvar( 1, 2, Cvar_VariableValue("r_rgbscale") ));
|
|
||||||
if (Cvar_VariableValue("r_rgbscale") == 1)
|
|
||||||
s_rgbscale_box.curvalue = 0;
|
|
||||||
else
|
|
||||||
s_rgbscale_box.curvalue = 1;
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_trans_lighting", ClampCvar( 0, 2, Cvar_VariableValue("r_trans_lighting") ));
|
|
||||||
s_trans_lighting_box.curvalue = Cvar_VariableValue("r_trans_lighting");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_warp_lighting", ClampCvar( 0, 1, Cvar_VariableValue("r_warp_lighting") ));
|
|
||||||
s_warp_lighting_box.curvalue = Cvar_VariableValue("r_warp_lighting");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_lightcutoff", ClampCvar( 0, 64, Cvar_VariableValue("r_lightcutoff") ));
|
|
||||||
UI_MenuSlider_SetValue (&s_lightcutoff_slider, Cvar_VariableValue("r_lightcutoff"));
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_glass_envmaps", ClampCvar( 0, 1, Cvar_VariableValue("r_glass_envmaps") ));
|
|
||||||
s_glass_envmap_box.curvalue = Cvar_VariableValue("r_glass_envmaps");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_solidalpha", ClampCvar( 0, 1, Cvar_VariableValue("r_solidalpha") ));
|
|
||||||
s_solidalpha_box.curvalue = Cvar_VariableValue("r_solidalpha");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_pixel_shader_warp", ClampCvar( 0, 1, Cvar_VariableValue("r_pixel_shader_warp") ));
|
|
||||||
s_texshader_warp_box.curvalue = Cvar_VariableValue("r_pixel_shader_warp");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_waterwave", ClampCvar( 0, 24, Cvar_VariableValue("r_waterwave") ));
|
|
||||||
UI_MenuSlider_SetValue (&s_waterwave_slider, Cvar_VariableValue("r_waterwave"));
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_caustics", ClampCvar( 0, 2, Cvar_VariableValue("r_caustics") ));
|
|
||||||
s_caustics_box.curvalue = Cvar_VariableValue("r_caustics");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_particle_overdraw", ClampCvar( 0, 1, Cvar_VariableValue("r_particle_overdraw") ));
|
|
||||||
s_particle_overdraw_box.curvalue = Cvar_VariableValue("r_particle_overdraw");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_bloom", ClampCvar( 0, 1, Cvar_VariableValue("r_bloom") ));
|
|
||||||
s_lightbloom_box.curvalue = Cvar_VariableValue("r_bloom");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_model_shading", ClampCvar( 0, 3, Cvar_VariableValue("r_model_shading") ));
|
|
||||||
s_modelshading_box.curvalue = Cvar_VariableValue("r_model_shading");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_shadows", ClampCvar( 0, 3, Cvar_VariableValue("r_shadows") ));
|
|
||||||
s_shadows_box.curvalue = Cvar_VariableValue("r_shadows");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_stencilTwoSide", ClampCvar( 0, 1, Cvar_VariableValue("r_stencilTwoSide") ));
|
|
||||||
s_two_side_stencil_box.curvalue = Cvar_VariableValue("r_stencilTwoSide");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_shelltype", ClampCvar( 0, 2, Cvar_VariableValue("r_shelltype") ));
|
|
||||||
s_ent_shell_box.curvalue = Cvar_VariableValue("r_shelltype");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_celshading", ClampCvar( 0, 1, Cvar_VariableValue("r_celshading") ));
|
|
||||||
s_celshading_box.curvalue = Cvar_VariableValue("r_celshading");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_celshading_width", ClampCvar( 1, 12, Cvar_VariableValue("r_celshading_width") ));
|
|
||||||
UI_MenuSlider_SetValue (&s_celshading_width_slider, Cvar_VariableValue("r_celshading_width"));
|
|
||||||
|
|
||||||
sshotformat = Cvar_VariableString("r_screenshot_format");
|
|
||||||
if ( !Q_strcasecmp(sshotformat, "jpg") )
|
|
||||||
s_screenshotformat_box.curvalue = 0;
|
|
||||||
else if ( !Q_strcasecmp(sshotformat, "png") )
|
|
||||||
s_screenshotformat_box.curvalue = 1;
|
|
||||||
else // tga
|
|
||||||
s_screenshotformat_box.curvalue = 2;
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_screenshot_jpeg_quality", ClampCvar( 50, 100, Cvar_VariableValue("r_screenshot_jpeg_quality") ));
|
|
||||||
UI_MenuSlider_SetValue (&s_screenshotjpegquality_slider, Cvar_VariableValue("r_screenshot_jpeg_quality"));
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_saveshotsize", ClampCvar( 0, 1, Cvar_VariableValue("r_saveshotsize") ));
|
|
||||||
s_saveshotsize_box.curvalue = Cvar_VariableValue("r_saveshotsize");
|
|
||||||
|
|
||||||
Cvar_SetValue ("r_font_upscale", ClampCvar( 0, 2, Cvar_VariableValue("r_font_upscale") ));
|
|
||||||
s_upscale_font_box.curvalue = Cvar_VariableValue("r_font_upscale");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void LightMapScaleCallback (void *unused)
|
static void LightMapScaleCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_modulate", UI_MenuSlider_GetValue(&s_lightmapscale_slider) );
|
UI_MenuSlider_SaveValue (&s_lightmapscale_slider, "r_modulate");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TextureIntensCallback (void *unused)
|
static void TextureIntensCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_intensity", UI_MenuSlider_GetValue(&s_textureintensity_slider));
|
UI_MenuSlider_SaveValue (&s_textureintensity_slider, "r_intensity");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void RGBSCaleCallback (void *unused)
|
static void RGBSCaleCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_rgbscale", s_rgbscale_box.curvalue + 1);
|
UI_MenuSpinControl_SaveValue (&s_rgbscale_box, "r_rgbscale");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TransLightingCallback (void *unused)
|
static void TransLightingCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_trans_lighting", s_trans_lighting_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_trans_lighting_box, "r_trans_lighting");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void WarpLightingCallback (void *unused)
|
static void WarpLightingCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_warp_lighting", s_warp_lighting_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_warp_lighting_box, "r_warp_lighting");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LightCutoffCallback(void *unused)
|
static void LightCutoffCallback(void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_lightcutoff", UI_MenuSlider_GetValue(&s_lightcutoff_slider));
|
UI_MenuSlider_SaveValue (&s_lightcutoff_slider, "r_lightcutoff");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GlassEnvmapCallback (void *unused)
|
static void GlassEnvmapCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_glass_envmaps", s_glass_envmap_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_glass_envmap_box, "r_glass_envmaps");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SolidAlphaCallback (void *unused)
|
static void SolidAlphaCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_solidalpha", s_solidalpha_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_solidalpha_box, "r_solidalpha");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TexShaderWarpCallback (void *unused)
|
static void TexShaderWarpCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_pixel_shader_warp", s_texshader_warp_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_texshader_warp_box, "r_pixel_shader_warp");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void WaterWaveCallback (void *unused)
|
static void WaterWaveCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_waterwave", UI_MenuSlider_GetValue(&s_waterwave_slider));
|
UI_MenuSlider_SaveValue (&s_waterwave_slider, "r_waterwave");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CausticsCallback (void *unused)
|
static void CausticsCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_caustics", s_caustics_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_caustics_box, "r_caustics");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ParticleOverdrawCallback(void *unused)
|
static void ParticleOverdrawCallback(void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_particle_overdraw", s_particle_overdraw_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_particle_overdraw_box, "r_particle_overdraw");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LightBloomCallback(void *unused)
|
static void LightBloomCallback(void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_bloom", s_lightbloom_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_lightbloom_box, "r_bloom");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ModelShadingCallback (void *unused)
|
static void ModelShadingCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_model_shading", s_modelshading_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_modelshading_box, "r_model_shading");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ShadowsCallback (void *unused)
|
static void ShadowsCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_shadows", s_shadows_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_shadows_box, "r_shadows");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TwoSideStencilCallback (void *unused)
|
static void TwoSideStencilCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_stencilTwoSide", s_two_side_stencil_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_two_side_stencil_box, "r_stencilTwoSide");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void EntShellCallback (void *unused)
|
static void EntShellCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_shelltype", s_ent_shell_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_ent_shell_box, "r_shelltype");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CelShadingCallback (void *unused)
|
static void CelShadingCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_celshading", s_celshading_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_celshading_box, "r_celshading");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CelShadingWidthCallback (void *unused)
|
static void CelShadingWidthCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_celshading_width", UI_MenuSlider_GetValue(&s_celshading_width_slider));
|
UI_MenuSlider_SaveValue (&s_celshading_width_slider, "r_celshading_width");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ScreenshotFormatCallback (void *unused)
|
static void ScreenshotFormatCallback (void *unused)
|
||||||
{
|
{
|
||||||
switch (s_screenshotformat_box.curvalue)
|
UI_MenuSpinControl_SaveValue (&s_screenshotformat_box, "r_screenshot_format");
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
Cvar_Set( "r_screenshot_format", "jpg");
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
Cvar_Set( "r_screenshot_format", "png");
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
default:
|
|
||||||
Cvar_Set( "r_screenshot_format", "tga");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void JPEGScreenshotQualityCallback (void *unused)
|
static void JPEGScreenshotQualityCallback (void *unused)
|
||||||
{
|
{
|
||||||
// Cvar_SetValue ("r_screenshot_jpeg_quality", (s_screenshotjpegquality_slider.curvalue * 5 + 50));
|
UI_MenuSlider_SaveValue (&s_screenshotjpegquality_slider, "r_screenshot_jpeg_quality");
|
||||||
Cvar_SetValue ("r_screenshot_jpeg_quality", UI_MenuSlider_GetValue(&s_screenshotjpegquality_slider));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SaveshotSizeCallback (void *unused)
|
static void SaveshotSizeCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_saveshotsize", s_saveshotsize_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_saveshotsize_box, "r_saveshotsize");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UpscaleFontCallback (void *unused)
|
static void UpscaleFontCallback (void *unused)
|
||||||
{
|
{
|
||||||
Cvar_SetValue ("r_font_upscale", s_upscale_font_box.curvalue);
|
UI_MenuSpinControl_SaveValue (&s_upscale_font_box, "r_font_upscale");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AdvancedMenuApplyChanges (void *unused)
|
//=======================================================================
|
||||||
|
|
||||||
|
static void M_AdvancedVideo_MenuSetValues (void)
|
||||||
|
{
|
||||||
|
UI_MenuSlider_SetValue (&s_lightmapscale_slider, "r_modulate", 1, 2, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_textureintensity_slider, "r_intensity", 1, 2, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_rgbscale_box, "r_rgbscale", 1, 4, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_trans_lighting_box, "r_trans_lighting", 0, 2, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_warp_lighting_box, "r_warp_lighting", 0, 1, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_lightcutoff_slider, "r_lightcutoff", 0, 64, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_glass_envmap_box, "r_glass_envmaps", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_solidalpha_box, "r_solidalpha", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_texshader_warp_box, "r_pixel_shader_warp", 0, 1, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_waterwave_slider, "r_waterwave", 0, 24, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_caustics_box, "r_caustics", 0, 2, true);
|
||||||
|
|
||||||
|
UI_MenuSpinControl_SetValue (&s_particle_overdraw_box, "r_particle_overdraw", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_lightbloom_box, "r_bloom", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_modelshading_box, "r_model_shading", 0, 3, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_shadows_box, "r_shadows", 0, 3, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_two_side_stencil_box, "r_stencilTwoSide", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_ent_shell_box, "r_shelltype", 0, 2, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_celshading_box, "r_celshading", 0, 1, true);
|
||||||
|
UI_MenuSlider_SetValue (&s_celshading_width_slider, "r_celshading_width", 1, 12, true);
|
||||||
|
|
||||||
|
UI_MenuSpinControl_SetValue (&s_screenshotformat_box, "r_screenshot_format", 0, 2, false);
|
||||||
|
UI_MenuSlider_SetValue (&s_screenshotjpegquality_slider, "r_screenshot_jpeg_quality", 50, 100, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_saveshotsize_box, "r_saveshotsize", 0, 1, true);
|
||||||
|
UI_MenuSpinControl_SetValue (&s_upscale_font_box, "r_font_upscale", 0, 2, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void M_AdvancedMenuApplyChanges (void *unused)
|
||||||
{
|
{
|
||||||
// update for modified r_intensity and r_stencilTwoSide
|
// update for modified r_intensity and r_stencilTwoSide
|
||||||
if ( r_intensity->modified || r_font_upscale->modified )
|
if ( r_intensity->modified || r_font_upscale->modified )
|
||||||
vid_ref->modified = true;
|
vid_ref->modified = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
Menu_Video_Advanced_Init
|
Menu_Video_Advanced_Init
|
||||||
|
@ -301,6 +241,20 @@ void Menu_Video_Advanced_Init (void)
|
||||||
"yes",
|
"yes",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
static const char *rgbscale_names[] =
|
||||||
|
{
|
||||||
|
"1x",
|
||||||
|
"2x",
|
||||||
|
"4x",
|
||||||
|
0
|
||||||
|
};
|
||||||
|
static const char *rgbscale_values[] =
|
||||||
|
{
|
||||||
|
"1",
|
||||||
|
"2",
|
||||||
|
"4",
|
||||||
|
0
|
||||||
|
};
|
||||||
static const char *lighting_names[] =
|
static const char *lighting_names[] =
|
||||||
{
|
{
|
||||||
"no",
|
"no",
|
||||||
|
@ -351,6 +305,13 @@ void Menu_Video_Advanced_Init (void)
|
||||||
"TGA",
|
"TGA",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
static const char *screenshotformat_values[] =
|
||||||
|
{
|
||||||
|
"jpg",
|
||||||
|
"png",
|
||||||
|
"tga",
|
||||||
|
0
|
||||||
|
};
|
||||||
static const char *font_upscale_names[] =
|
static const char *font_upscale_names[] =
|
||||||
{
|
{
|
||||||
"no",
|
"no",
|
||||||
|
@ -401,9 +362,10 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_rgbscale_box.generic.textSize = MENU_FONT_SIZE;
|
s_rgbscale_box.generic.textSize = MENU_FONT_SIZE;
|
||||||
s_rgbscale_box.generic.x = 0;
|
s_rgbscale_box.generic.x = 0;
|
||||||
s_rgbscale_box.generic.y = y += MENU_LINE_SIZE;
|
s_rgbscale_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_rgbscale_box.generic.name = "RGB enhance";
|
s_rgbscale_box.generic.name = "RGB enhance factor";
|
||||||
s_rgbscale_box.generic.callback = RGBSCaleCallback;
|
s_rgbscale_box.generic.callback = RGBSCaleCallback;
|
||||||
s_rgbscale_box.itemnames = yesno_names;
|
s_rgbscale_box.itemNames = rgbscale_names;
|
||||||
|
s_rgbscale_box.itemValues = rgbscale_values;
|
||||||
s_rgbscale_box.generic.statusbar = "brightens textures without washing them out";
|
s_rgbscale_box.generic.statusbar = "brightens textures without washing them out";
|
||||||
|
|
||||||
s_trans_lighting_box.generic.type = MTYPE_SPINCONTROL;
|
s_trans_lighting_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -412,7 +374,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_trans_lighting_box.generic.y = y += MENU_LINE_SIZE;
|
s_trans_lighting_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_trans_lighting_box.generic.name = "translucent lighting";
|
s_trans_lighting_box.generic.name = "translucent lighting";
|
||||||
s_trans_lighting_box.generic.callback = TransLightingCallback;
|
s_trans_lighting_box.generic.callback = TransLightingCallback;
|
||||||
s_trans_lighting_box.itemnames = lighting_names;
|
s_trans_lighting_box.itemNames = lighting_names;
|
||||||
s_trans_lighting_box.generic.statusbar = "lighting on translucent surfaces";
|
s_trans_lighting_box.generic.statusbar = "lighting on translucent surfaces";
|
||||||
|
|
||||||
s_warp_lighting_box.generic.type = MTYPE_SPINCONTROL;
|
s_warp_lighting_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -421,7 +383,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_warp_lighting_box.generic.y = y += MENU_LINE_SIZE;
|
s_warp_lighting_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_warp_lighting_box.generic.name = "warp surface lighting";
|
s_warp_lighting_box.generic.name = "warp surface lighting";
|
||||||
s_warp_lighting_box.generic.callback = WarpLightingCallback;
|
s_warp_lighting_box.generic.callback = WarpLightingCallback;
|
||||||
s_warp_lighting_box.itemnames = yesno_names;
|
s_warp_lighting_box.itemNames = yesno_names;
|
||||||
s_warp_lighting_box.generic.statusbar = "vertex lighting on water and other warping surfaces";
|
s_warp_lighting_box.generic.statusbar = "vertex lighting on water and other warping surfaces";
|
||||||
|
|
||||||
s_lightcutoff_slider.generic.type = MTYPE_SLIDER;
|
s_lightcutoff_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -442,7 +404,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_glass_envmap_box.generic.y = y += MENU_LINE_SIZE;
|
s_glass_envmap_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_glass_envmap_box.generic.name = "glass envmaps";
|
s_glass_envmap_box.generic.name = "glass envmaps";
|
||||||
s_glass_envmap_box.generic.callback = GlassEnvmapCallback;
|
s_glass_envmap_box.generic.callback = GlassEnvmapCallback;
|
||||||
s_glass_envmap_box.itemnames = yesno_names;
|
s_glass_envmap_box.itemNames = yesno_names;
|
||||||
s_glass_envmap_box.generic.statusbar = "enable environment mapping on transparent surfaces";
|
s_glass_envmap_box.generic.statusbar = "enable environment mapping on transparent surfaces";
|
||||||
|
|
||||||
s_solidalpha_box.generic.type = MTYPE_SPINCONTROL;
|
s_solidalpha_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -451,7 +413,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_solidalpha_box.generic.y = y += MENU_LINE_SIZE;
|
s_solidalpha_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_solidalpha_box.generic.name = "solid alphas";
|
s_solidalpha_box.generic.name = "solid alphas";
|
||||||
s_solidalpha_box.generic.callback = SolidAlphaCallback;
|
s_solidalpha_box.generic.callback = SolidAlphaCallback;
|
||||||
s_solidalpha_box.itemnames = yesno_names;
|
s_solidalpha_box.itemNames = yesno_names;
|
||||||
s_solidalpha_box.generic.statusbar = "enable solid drawing of trans33 + trans66 surfaces";
|
s_solidalpha_box.generic.statusbar = "enable solid drawing of trans33 + trans66 surfaces";
|
||||||
|
|
||||||
s_texshader_warp_box.generic.type = MTYPE_SPINCONTROL;
|
s_texshader_warp_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -460,7 +422,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_texshader_warp_box.generic.y = y += MENU_LINE_SIZE;
|
s_texshader_warp_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_texshader_warp_box.generic.name = "texture shader warp";
|
s_texshader_warp_box.generic.name = "texture shader warp";
|
||||||
s_texshader_warp_box.generic.callback = TexShaderWarpCallback;
|
s_texshader_warp_box.generic.callback = TexShaderWarpCallback;
|
||||||
s_texshader_warp_box.itemnames = ifsupported_names;
|
s_texshader_warp_box.itemNames = ifsupported_names;
|
||||||
s_texshader_warp_box.generic.statusbar = "enables hardware water warping effect";
|
s_texshader_warp_box.generic.statusbar = "enables hardware water warping effect";
|
||||||
|
|
||||||
s_waterwave_slider.generic.type = MTYPE_SLIDER;
|
s_waterwave_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -481,7 +443,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_caustics_box.generic.y = y += MENU_LINE_SIZE;
|
s_caustics_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_caustics_box.generic.name = "underwater caustics";
|
s_caustics_box.generic.name = "underwater caustics";
|
||||||
s_caustics_box.generic.callback = CausticsCallback;
|
s_caustics_box.generic.callback = CausticsCallback;
|
||||||
s_caustics_box.itemnames = caustics_names;
|
s_caustics_box.itemNames = caustics_names;
|
||||||
s_caustics_box.generic.statusbar = "caustic effect on underwater surfaces";
|
s_caustics_box.generic.statusbar = "caustic effect on underwater surfaces";
|
||||||
|
|
||||||
s_particle_overdraw_box.generic.type = MTYPE_SPINCONTROL;
|
s_particle_overdraw_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -490,7 +452,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_particle_overdraw_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_particle_overdraw_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_particle_overdraw_box.generic.name = "particle overdraw";
|
s_particle_overdraw_box.generic.name = "particle overdraw";
|
||||||
s_particle_overdraw_box.generic.callback = ParticleOverdrawCallback;
|
s_particle_overdraw_box.generic.callback = ParticleOverdrawCallback;
|
||||||
s_particle_overdraw_box.itemnames = yesno_names;
|
s_particle_overdraw_box.itemNames = yesno_names;
|
||||||
s_particle_overdraw_box.generic.statusbar = "redraw particles over trans surfaces";
|
s_particle_overdraw_box.generic.statusbar = "redraw particles over trans surfaces";
|
||||||
|
|
||||||
s_lightbloom_box.generic.type = MTYPE_SPINCONTROL;
|
s_lightbloom_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -499,7 +461,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_lightbloom_box.generic.y = y += MENU_LINE_SIZE;
|
s_lightbloom_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_lightbloom_box.generic.name = "light blooms";
|
s_lightbloom_box.generic.name = "light blooms";
|
||||||
s_lightbloom_box.generic.callback = LightBloomCallback;
|
s_lightbloom_box.generic.callback = LightBloomCallback;
|
||||||
s_lightbloom_box.itemnames = yesno_names;
|
s_lightbloom_box.itemNames = yesno_names;
|
||||||
s_lightbloom_box.generic.statusbar = "enables blooming of bright lights";
|
s_lightbloom_box.generic.statusbar = "enables blooming of bright lights";
|
||||||
|
|
||||||
s_modelshading_box.generic.type = MTYPE_SPINCONTROL;
|
s_modelshading_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -508,7 +470,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_modelshading_box.generic.y = y += MENU_LINE_SIZE;
|
s_modelshading_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_modelshading_box.generic.name = "model shading";
|
s_modelshading_box.generic.name = "model shading";
|
||||||
s_modelshading_box.generic.callback = ModelShadingCallback;
|
s_modelshading_box.generic.callback = ModelShadingCallback;
|
||||||
s_modelshading_box.itemnames = shading_names;
|
s_modelshading_box.itemNames = shading_names;
|
||||||
s_modelshading_box.generic.statusbar = "level of shading to use on models";
|
s_modelshading_box.generic.statusbar = "level of shading to use on models";
|
||||||
|
|
||||||
s_shadows_box.generic.type = MTYPE_SPINCONTROL;
|
s_shadows_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -517,7 +479,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_shadows_box.generic.y = y += MENU_LINE_SIZE;
|
s_shadows_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_shadows_box.generic.name = "entity shadows";
|
s_shadows_box.generic.name = "entity shadows";
|
||||||
s_shadows_box.generic.callback = ShadowsCallback;
|
s_shadows_box.generic.callback = ShadowsCallback;
|
||||||
s_shadows_box.itemnames = shadow_names;
|
s_shadows_box.itemNames = shadow_names;
|
||||||
s_shadows_box.generic.statusbar = "type of model shadows to draw";
|
s_shadows_box.generic.statusbar = "type of model shadows to draw";
|
||||||
|
|
||||||
s_two_side_stencil_box.generic.type = MTYPE_SPINCONTROL;
|
s_two_side_stencil_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -526,7 +488,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_two_side_stencil_box.generic.y = y += MENU_LINE_SIZE;
|
s_two_side_stencil_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_two_side_stencil_box.generic.name = "two-sided stenciling";
|
s_two_side_stencil_box.generic.name = "two-sided stenciling";
|
||||||
s_two_side_stencil_box.generic.callback = TwoSideStencilCallback;
|
s_two_side_stencil_box.generic.callback = TwoSideStencilCallback;
|
||||||
s_two_side_stencil_box.itemnames = ifsupported_names;
|
s_two_side_stencil_box.itemNames = ifsupported_names;
|
||||||
s_two_side_stencil_box.generic.statusbar = "use single-pass shadow stenciling";
|
s_two_side_stencil_box.generic.statusbar = "use single-pass shadow stenciling";
|
||||||
|
|
||||||
s_ent_shell_box.generic.type = MTYPE_SPINCONTROL;
|
s_ent_shell_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -535,7 +497,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_ent_shell_box.generic.y = y += MENU_LINE_SIZE;
|
s_ent_shell_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_ent_shell_box.generic.name = "entity shell type";
|
s_ent_shell_box.generic.name = "entity shell type";
|
||||||
s_ent_shell_box.generic.callback = EntShellCallback;
|
s_ent_shell_box.generic.callback = EntShellCallback;
|
||||||
s_ent_shell_box.itemnames = shell_names;
|
s_ent_shell_box.itemNames = shell_names;
|
||||||
s_ent_shell_box.generic.statusbar = "envmap effect may cause instability on ATI cards";
|
s_ent_shell_box.generic.statusbar = "envmap effect may cause instability on ATI cards";
|
||||||
|
|
||||||
s_celshading_box.generic.type = MTYPE_SPINCONTROL;
|
s_celshading_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -544,7 +506,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_celshading_box.generic.y = y += MENU_LINE_SIZE;
|
s_celshading_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_celshading_box.generic.name = "cel shading";
|
s_celshading_box.generic.name = "cel shading";
|
||||||
s_celshading_box.generic.callback = CelShadingCallback;
|
s_celshading_box.generic.callback = CelShadingCallback;
|
||||||
s_celshading_box.itemnames = yesno_names;
|
s_celshading_box.itemNames = yesno_names;
|
||||||
s_celshading_box.generic.statusbar = "cartoon-style rendering of models";
|
s_celshading_box.generic.statusbar = "cartoon-style rendering of models";
|
||||||
|
|
||||||
s_celshading_width_slider.generic.type = MTYPE_SLIDER;
|
s_celshading_width_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -565,7 +527,8 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_screenshotformat_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_screenshotformat_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_screenshotformat_box.generic.name = "screenshot format";
|
s_screenshotformat_box.generic.name = "screenshot format";
|
||||||
s_screenshotformat_box.generic.callback = ScreenshotFormatCallback;
|
s_screenshotformat_box.generic.callback = ScreenshotFormatCallback;
|
||||||
s_screenshotformat_box.itemnames = screenshotformat_names;
|
s_screenshotformat_box.itemNames = screenshotformat_names;
|
||||||
|
s_screenshotformat_box.itemValues = screenshotformat_values;
|
||||||
s_screenshotformat_box.generic.statusbar = "image format for screenshots";
|
s_screenshotformat_box.generic.statusbar = "image format for screenshots";
|
||||||
|
|
||||||
s_screenshotjpegquality_slider.generic.type = MTYPE_SLIDER;
|
s_screenshotjpegquality_slider.generic.type = MTYPE_SLIDER;
|
||||||
|
@ -586,7 +549,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_saveshotsize_box.generic.y = y += MENU_LINE_SIZE;
|
s_saveshotsize_box.generic.y = y += MENU_LINE_SIZE;
|
||||||
s_saveshotsize_box.generic.name = "hi-res saveshots";
|
s_saveshotsize_box.generic.name = "hi-res saveshots";
|
||||||
s_saveshotsize_box.generic.callback = SaveshotSizeCallback;
|
s_saveshotsize_box.generic.callback = SaveshotSizeCallback;
|
||||||
s_saveshotsize_box.itemnames = yesno_names;
|
s_saveshotsize_box.itemNames = yesno_names;
|
||||||
s_saveshotsize_box.generic.statusbar = "hi-res saveshots when running at 800x600 or higher";
|
s_saveshotsize_box.generic.statusbar = "hi-res saveshots when running at 800x600 or higher";
|
||||||
|
|
||||||
s_upscale_font_box.generic.type = MTYPE_SPINCONTROL;
|
s_upscale_font_box.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -595,7 +558,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_upscale_font_box.generic.y = y += 2*MENU_LINE_SIZE;
|
s_upscale_font_box.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_upscale_font_box.generic.name = "upscale old fonts";
|
s_upscale_font_box.generic.name = "upscale old fonts";
|
||||||
s_upscale_font_box.generic.callback = UpscaleFontCallback;
|
s_upscale_font_box.generic.callback = UpscaleFontCallback;
|
||||||
s_upscale_font_box.itemnames = font_upscale_names;
|
s_upscale_font_box.itemNames = font_upscale_names;
|
||||||
s_upscale_font_box.generic.statusbar = "upscales 128x128 fonts to higher res based on screen resolution";
|
s_upscale_font_box.generic.statusbar = "upscales 128x128 fonts to higher res based on screen resolution";
|
||||||
|
|
||||||
s_advanced_apply_action.generic.type = MTYPE_ACTION;
|
s_advanced_apply_action.generic.type = MTYPE_ACTION;
|
||||||
|
@ -603,7 +566,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_advanced_apply_action.generic.name = "apply changes";
|
s_advanced_apply_action.generic.name = "apply changes";
|
||||||
s_advanced_apply_action.generic.x = 0;
|
s_advanced_apply_action.generic.x = 0;
|
||||||
s_advanced_apply_action.generic.y = y += 2*MENU_LINE_SIZE;
|
s_advanced_apply_action.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_advanced_apply_action.generic.callback = AdvancedMenuApplyChanges;
|
s_advanced_apply_action.generic.callback = M_AdvancedMenuApplyChanges;
|
||||||
|
|
||||||
s_back_action.generic.type = MTYPE_ACTION;
|
s_back_action.generic.type = MTYPE_ACTION;
|
||||||
s_back_action.generic.textSize = MENU_FONT_SIZE;
|
s_back_action.generic.textSize = MENU_FONT_SIZE;
|
||||||
|
@ -612,7 +575,7 @@ void Menu_Video_Advanced_Init (void)
|
||||||
s_back_action.generic.y = y += 2*MENU_LINE_SIZE;
|
s_back_action.generic.y = y += 2*MENU_LINE_SIZE;
|
||||||
s_back_action.generic.callback = UI_BackMenu;
|
s_back_action.generic.callback = UI_BackMenu;
|
||||||
|
|
||||||
Video_Advanced_MenuSetValues ();
|
M_AdvancedVideo_MenuSetValues ();
|
||||||
|
|
||||||
UI_AddMenuItem (&s_video_advanced_menu, (void *) &s_options_advanced_header);
|
UI_AddMenuItem (&s_video_advanced_menu, (void *) &s_options_advanced_header);
|
||||||
UI_AddMenuItem (&s_video_advanced_menu, (void *) &s_lightmapscale_slider);
|
UI_AddMenuItem (&s_video_advanced_menu, (void *) &s_lightmapscale_slider);
|
||||||
|
|
|
@ -31,6 +31,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
#define MTYPE_SPINCONTROL 3
|
#define MTYPE_SPINCONTROL 3
|
||||||
#define MTYPE_SEPARATOR 4
|
#define MTYPE_SEPARATOR 4
|
||||||
#define MTYPE_FIELD 5
|
#define MTYPE_FIELD 5
|
||||||
|
#define MTYPE_KEYBIND 6
|
||||||
|
|
||||||
#define K_TAB 9
|
#define K_TAB 9
|
||||||
#define K_ENTER 13
|
#define K_ENTER 13
|
||||||
|
@ -131,10 +132,12 @@ typedef struct
|
||||||
{
|
{
|
||||||
menucommon_s generic;
|
menucommon_s generic;
|
||||||
|
|
||||||
int curvalue;
|
qboolean invertValue; // Knightmare added
|
||||||
|
int curValue;
|
||||||
|
|
||||||
const char **itemnames;
|
const char **itemNames;
|
||||||
int numitemnames;
|
const char **itemValues; // Knightmare added
|
||||||
|
int numItems;
|
||||||
} menulist_s;
|
} menulist_s;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -147,6 +150,16 @@ typedef struct
|
||||||
menucommon_s generic;
|
menucommon_s generic;
|
||||||
} menuseparator_s;
|
} menuseparator_s;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
menucommon_s generic;
|
||||||
|
|
||||||
|
char *commandName;
|
||||||
|
const char *enter_statusbar;
|
||||||
|
int keys[2];
|
||||||
|
qboolean grabBind;
|
||||||
|
} menukeybind_s;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
LISTBOX_TEXT,
|
LISTBOX_TEXT,
|
||||||
LISTBOX_IMAGE,
|
LISTBOX_IMAGE,
|
||||||
|
@ -163,16 +176,16 @@ typedef struct
|
||||||
menucommon_s generic;
|
menucommon_s generic;
|
||||||
|
|
||||||
listboxtype_t type;
|
listboxtype_t type;
|
||||||
scrolltype_t scrolltype;
|
scrolltype_t scrollType;
|
||||||
int items_x;
|
int items_x;
|
||||||
int items_y;
|
int items_y;
|
||||||
int item_width;
|
int item_width;
|
||||||
int item_height;
|
int item_height;
|
||||||
int scrollpos;
|
int scrollPos;
|
||||||
int curvalue;
|
int curValue;
|
||||||
|
|
||||||
const char **itemnames;
|
const char **itemNames;
|
||||||
int numitemnames;
|
int numItems;
|
||||||
} menulistbox_s;
|
} menulistbox_s;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -232,7 +245,7 @@ extern char **ui_resolution_names;
|
||||||
extern char **ui_video_modes;
|
extern char **ui_video_modes;
|
||||||
|
|
||||||
extern char **ui_aniso_names;
|
extern char **ui_aniso_names;
|
||||||
//extern char **ui_aniso_values;
|
extern char **ui_aniso_values;
|
||||||
|
|
||||||
extern char **ui_font_names;
|
extern char **ui_font_names;
|
||||||
extern int ui_numfonts;
|
extern int ui_numfonts;
|
||||||
|
@ -242,7 +255,7 @@ extern int ui_numfonts;
|
||||||
|
|
||||||
extern char **ui_crosshair_names;
|
extern char **ui_crosshair_names;
|
||||||
//extern char **ui_crosshair_display_names;
|
//extern char **ui_crosshair_display_names;
|
||||||
//extern char **ui_crosshair_values;
|
extern char **ui_crosshair_values;
|
||||||
extern int ui_numcrosshairs;
|
extern int ui_numcrosshairs;
|
||||||
|
|
||||||
//=======================================================
|
//=======================================================
|
||||||
|
@ -325,8 +338,11 @@ extern struct image_s *ui_playerskin;
|
||||||
//=======================================================
|
//=======================================================
|
||||||
|
|
||||||
qboolean UI_IsValidImageFilename (char *name);
|
qboolean UI_IsValidImageFilename (char *name);
|
||||||
|
void UI_ClampCvar (const char *varName, float cvarMin, float cvarMax);
|
||||||
int UI_GetIndexForStringValue (const char **item_values, char *value);
|
int UI_GetIndexForStringValue (const char **item_values, char *value);
|
||||||
int UI_MouseOverAlpha (menucommon_s *m);
|
int UI_MouseOverAlpha (menucommon_s *m);
|
||||||
|
void UI_UnbindCommand (char *command);
|
||||||
|
void UI_FindKeysForCommand (char *command, int *twokeys);
|
||||||
void *UI_ItemAtMenuCursor (menuframework_s *m);
|
void *UI_ItemAtMenuCursor (menuframework_s *m);
|
||||||
void UI_SetMenuStatusBar (menuframework_s *s, const char *string);
|
void UI_SetMenuStatusBar (menuframework_s *s, const char *string);
|
||||||
int UI_TallyMenuSlots (menuframework_s *menu);
|
int UI_TallyMenuSlots (menuframework_s *menu);
|
||||||
|
@ -379,7 +395,7 @@ void UI_UpdatePlayerSkinInfo (int mNum, int sNum);
|
||||||
qboolean UI_HaveValidPlayerModels (void *unused);
|
qboolean UI_HaveValidPlayerModels (void *unused);
|
||||||
|
|
||||||
//
|
//
|
||||||
// ui_backend.c
|
// ui_widgets.c
|
||||||
//
|
//
|
||||||
extern vec4_t stCoord_arrow_left;
|
extern vec4_t stCoord_arrow_left;
|
||||||
extern vec4_t stCoord_arrow_right;
|
extern vec4_t stCoord_arrow_right;
|
||||||
|
@ -387,8 +403,13 @@ extern vec4_t stCoord_arrow_up;
|
||||||
extern vec4_t stCoord_arrow_down;
|
extern vec4_t stCoord_arrow_down;
|
||||||
|
|
||||||
qboolean UI_MenuField_Key (menufield_s *field, int key);
|
qboolean UI_MenuField_Key (menufield_s *field, int key);
|
||||||
void UI_MenuSlider_SetValue (menuslider_s *s, float value);
|
|
||||||
|
void UI_MenuSlider_SetValue (menuslider_s *s, const char *varName, float cvarMin, float cvarMax, qboolean clamp);
|
||||||
|
void UI_MenuSlider_SaveValue (menuslider_s *s, const char *varName);
|
||||||
float UI_MenuSlider_GetValue (menuslider_s *s);
|
float UI_MenuSlider_GetValue (menuslider_s *s);
|
||||||
|
void UI_MenuSpinControl_SetValue (menulist_s *s, const char *varName, float cvarMin, float cvarMax, qboolean clamp);
|
||||||
|
void UI_MenuSpinControl_SaveValue (menulist_s *s, const char *varName);
|
||||||
|
const char *UI_MenuSpinControl_GetValue (menulist_s *s);
|
||||||
|
|
||||||
void UI_DrawMenuItem (void *item);
|
void UI_DrawMenuItem (void *item);
|
||||||
qboolean UI_SelectMenuItem (menuframework_s *s);
|
qboolean UI_SelectMenuItem (menuframework_s *s);
|
||||||
|
@ -495,6 +516,8 @@ void UI_Draw_Cursor (void);
|
||||||
#define UI_SLIDER_PIC "/gfx/ui/widgets/slider.pcx"
|
#define UI_SLIDER_PIC "/gfx/ui/widgets/slider.pcx"
|
||||||
#define UI_ARROWS_PIC "/gfx/ui/widgets/arrows.pcx"
|
#define UI_ARROWS_PIC "/gfx/ui/widgets/arrows.pcx"
|
||||||
|
|
||||||
|
#define UI_ITEMVALUE_WILDCARD "???"
|
||||||
|
|
||||||
extern cvar_t *ui_sensitivity;
|
extern cvar_t *ui_sensitivity;
|
||||||
extern cvar_t *ui_background_alpha;
|
extern cvar_t *ui_background_alpha;
|
||||||
extern cvar_t *ui_item_rotate;
|
extern cvar_t *ui_item_rotate;
|
||||||
|
|
25
ui/ui_menu.c
25
ui/ui_menu.c
|
@ -210,7 +210,7 @@ UI_AddMenuItem
|
||||||
*/
|
*/
|
||||||
void UI_AddMenuItem (menuframework_s *menu, void *item)
|
void UI_AddMenuItem (menuframework_s *menu, void *item)
|
||||||
{
|
{
|
||||||
int i;
|
int i, j;
|
||||||
menulist_s *list;
|
menulist_s *list;
|
||||||
menucommon_s *baseItem;
|
menucommon_s *baseItem;
|
||||||
|
|
||||||
|
@ -230,8 +230,16 @@ void UI_AddMenuItem (menuframework_s *menu, void *item)
|
||||||
|
|
||||||
switch (list->generic.type) {
|
switch (list->generic.type) {
|
||||||
case MTYPE_SPINCONTROL:
|
case MTYPE_SPINCONTROL:
|
||||||
for (i=0; list->itemnames[i]; i++);
|
for (i=0; list->itemNames[i]; i++);
|
||||||
list->numitemnames = i;
|
list->numItems = i;
|
||||||
|
if (list->itemValues) // Check if itemvalues count matches itemnames
|
||||||
|
{
|
||||||
|
for (j=0; list->itemValues[j]; j++);
|
||||||
|
if (j != i) {
|
||||||
|
Com_Printf (S_COLOR_YELLOW"UI_AddMenuItem: itemvalues size mismatch for %s!\n",
|
||||||
|
(list->generic.name && (list->generic.name[0] != 0)) ? list->generic.name : "<noname>");
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,10 +391,13 @@ void UI_DrawMenu (menuframework_s *menu)
|
||||||
|
|
||||||
cursor = ((int)(Sys_Milliseconds()/250)&1) ? UI_ITEMCURSOR_DEFAULT_PIC : UI_ITEMCURSOR_BLINK_PIC;
|
cursor = ((int)(Sys_Milliseconds()/250)&1) ? UI_ITEMCURSOR_DEFAULT_PIC : UI_ITEMCURSOR_BLINK_PIC;
|
||||||
|
|
||||||
if (item->flags & QMF_LEFT_JUSTIFY)
|
// if (item->flags & QMF_LEFT_JUSTIFY)
|
||||||
cursorX = menu->x + item->x + item->cursor_offset - 24;
|
// cursorX = menu->x + item->x + item->cursor_offset - 24;
|
||||||
else
|
// else
|
||||||
cursorX = menu->x + item->cursor_offset;
|
// cursorX = menu->x + item->cursor_offset;
|
||||||
|
cursorX = menu->x + item->x + item->cursor_offset;
|
||||||
|
if ( (item->flags & QMF_LEFT_JUSTIFY) && (item->type == MTYPE_ACTION) )
|
||||||
|
cursorX -= 4*MENU_FONT_SIZE;
|
||||||
|
|
||||||
UI_DrawPic (cursorX, menu->y+item->y, item->textSize, item->textSize, ALIGN_CENTER, false, cursor, 255);
|
UI_DrawPic (cursorX, menu->y+item->y, item->textSize, item->textSize, ALIGN_CENTER, false, cursor, 255);
|
||||||
|
|
||||||
|
|
|
@ -316,7 +316,7 @@ void UI_Mouseover_Check (menuframework_s *menu)
|
||||||
min[0] -= SCR_ScaledScreen(len*item->textSize - LCOLUMN_OFFSET*2);
|
min[0] -= SCR_ScaledScreen(len*item->textSize - LCOLUMN_OFFSET*2);
|
||||||
}
|
}
|
||||||
|
|
||||||
len = (int)strlen(spin->itemnames[spin->curvalue]);
|
len = (int)strlen(spin->itemNames[spin->curValue]);
|
||||||
// max[0] += SCR_ScaledScreen(len*MENU_FONT_SIZE);
|
// max[0] += SCR_ScaledScreen(len*MENU_FONT_SIZE);
|
||||||
max[0] += SCR_ScaledScreen(len*item->textSize);
|
max[0] += SCR_ScaledScreen(len*item->textSize);
|
||||||
|
|
||||||
|
|
126
ui/ui_utils.c
126
ui/ui_utils.c
|
@ -119,6 +119,17 @@ qboolean UI_IsValidImageFilename (char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================
|
||||||
|
UI_ClampCvar
|
||||||
|
==========================
|
||||||
|
*/
|
||||||
|
void UI_ClampCvar (const char *varName, float cvarMin, float cvarMax)
|
||||||
|
{
|
||||||
|
Cvar_SetValue ((char *)varName, ClampCvar( cvarMin, cvarMax, Cvar_VariableValue((char *)varName) ));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==========================
|
==========================
|
||||||
UI_GetIndexForStringValue
|
UI_GetIndexForStringValue
|
||||||
|
@ -126,7 +137,8 @@ UI_GetIndexForStringValue
|
||||||
*/
|
*/
|
||||||
int UI_GetIndexForStringValue (const char **item_values, char *value)
|
int UI_GetIndexForStringValue (const char **item_values, char *value)
|
||||||
{
|
{
|
||||||
int i, index = 0;
|
int i, index = 0, widlcardIndex = -1;
|
||||||
|
qboolean found = false;
|
||||||
|
|
||||||
// catch null array
|
// catch null array
|
||||||
if (!item_values) {
|
if (!item_values) {
|
||||||
|
@ -135,9 +147,19 @@ int UI_GetIndexForStringValue (const char **item_values, char *value)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=0; item_values[i]; i++)
|
for (i=0; item_values[i]; i++)
|
||||||
if ( !Q_strcasecmp(va("%s",item_values[i]), value) )
|
{ // Store index of wildcard entry
|
||||||
{ index = i; break; }
|
if ( !Q_stricmp(va("%s", item_values[i]), UI_ITEMVALUE_WILDCARD) )
|
||||||
|
{ widlcardIndex = i; }
|
||||||
|
if ( !Q_strcasecmp(va("%s", item_values[i]), value) ) {
|
||||||
|
index = i;
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Assign index of wildcard entry if not found
|
||||||
|
if ( !found && (widlcardIndex >= 0) ) {
|
||||||
|
index = widlcardIndex;
|
||||||
|
}
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,6 +187,63 @@ int UI_MouseOverAlpha (menucommon_s *m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================
|
||||||
|
UI_UnbindCommand
|
||||||
|
==========================
|
||||||
|
*/
|
||||||
|
void UI_UnbindCommand (char *command)
|
||||||
|
{
|
||||||
|
int j, len, len2;
|
||||||
|
char *b;
|
||||||
|
|
||||||
|
len = (int)strlen(command);
|
||||||
|
|
||||||
|
for (j=0; j<256; j++)
|
||||||
|
{
|
||||||
|
b = keybindings[j];
|
||||||
|
if (!b)
|
||||||
|
continue;
|
||||||
|
len2 = (int)strlen(b);
|
||||||
|
// compare with longer length to prevent +attack2 being confused with +attack
|
||||||
|
if ( !strncmp(b, command, max(len, len2)) )
|
||||||
|
Key_SetBinding (j, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================
|
||||||
|
UI_FindKeysForCommand
|
||||||
|
==========================
|
||||||
|
*/
|
||||||
|
void UI_FindKeysForCommand (char *command, int *twokeys)
|
||||||
|
{
|
||||||
|
int count, j, len, len2;
|
||||||
|
char *b;
|
||||||
|
|
||||||
|
twokeys[0] = twokeys[1] = -1;
|
||||||
|
len = (int)strlen(command);
|
||||||
|
count = 0;
|
||||||
|
|
||||||
|
for (j=0; j<256; j++)
|
||||||
|
{
|
||||||
|
b = keybindings[j];
|
||||||
|
if (!b)
|
||||||
|
continue;
|
||||||
|
len2 = (int)strlen(b);
|
||||||
|
// compare with longer length to prevent +attack2 being confused with +attack
|
||||||
|
if ( !strncmp(b, command, max(len, len2)) )
|
||||||
|
{
|
||||||
|
twokeys[count] = j;
|
||||||
|
count++;
|
||||||
|
if (count == 2)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
UI_ItemAtMenuCursor
|
UI_ItemAtMenuCursor
|
||||||
|
@ -207,7 +286,7 @@ int UI_TallyMenuSlots (menuframework_s *menu)
|
||||||
if ( ((menucommon_s *)menu->items[i])->type == MTYPE_LIST )
|
if ( ((menucommon_s *)menu->items[i])->type == MTYPE_LIST )
|
||||||
{
|
{
|
||||||
int nitems = 0;
|
int nitems = 0;
|
||||||
const char **n = ((menulist_s *)menu->items[i])->itemnames;
|
const char **n = ((menulist_s *)menu->items[i])->itemNames;
|
||||||
|
|
||||||
while (*n)
|
while (*n)
|
||||||
nitems++, n++;
|
nitems++, n++;
|
||||||
|
@ -318,7 +397,8 @@ void UI_GetVideoModes (void)
|
||||||
int i, j=0, w=0, h=0, firstMode=0, numModes=0;
|
int i, j=0, w=0, h=0, firstMode=0, numModes=0;
|
||||||
float aspect;
|
float aspect;
|
||||||
char *tok, resBuf[12], aspectBuf[8], nameBuf[20];
|
char *tok, resBuf[12], aspectBuf[8], nameBuf[20];
|
||||||
qboolean surround = false;
|
// qboolean surround = false;
|
||||||
|
// cvar_t *surround_threshold = Cvar_Get ("scr_surroundthreshold", "3.6", 0);
|
||||||
|
|
||||||
// count video modes >= 640x480
|
// count video modes >= 640x480
|
||||||
for (i=0; i<UI_MAX_VIDMODES; i++)
|
for (i=0; i<UI_MAX_VIDMODES; i++)
|
||||||
|
@ -358,10 +438,10 @@ void UI_GetVideoModes (void)
|
||||||
Com_sprintf (resBuf, sizeof(resBuf), "%dx%d", w, h);
|
Com_sprintf (resBuf, sizeof(resBuf), "%dx%d", w, h);
|
||||||
|
|
||||||
// catch surround modes
|
// catch surround modes
|
||||||
if (aspect > 3.6f) {
|
/* if (aspect > surround_threshold->value) { // 3.6f
|
||||||
aspect /= 3.0f;
|
aspect /= 3.0f;
|
||||||
surround = true;
|
surround = true;
|
||||||
}
|
} */
|
||||||
if (aspect > 2.39f)
|
if (aspect > 2.39f)
|
||||||
tok = "24:10";
|
tok = "24:10";
|
||||||
else if (aspect > 2.3f)
|
else if (aspect > 2.3f)
|
||||||
|
@ -383,9 +463,9 @@ void UI_GetVideoModes (void)
|
||||||
else
|
else
|
||||||
tok = va("%3.1f:1", aspect);
|
tok = va("%3.1f:1", aspect);
|
||||||
|
|
||||||
if (surround)
|
/* if (surround)
|
||||||
Com_sprintf (aspectBuf, sizeof(aspectBuf), "3x%s", tok);
|
Com_sprintf (aspectBuf, sizeof(aspectBuf), "3x%s", tok);
|
||||||
else
|
else */
|
||||||
Com_sprintf (aspectBuf, sizeof(aspectBuf), "%s", tok);
|
Com_sprintf (aspectBuf, sizeof(aspectBuf), "%s", tok);
|
||||||
|
|
||||||
// Com_sprintf (nameBuf, sizeof(nameBuf), "%-12s%s", resBuf, aspectBuf);
|
// Com_sprintf (nameBuf, sizeof(nameBuf), "%-12s%s", resBuf, aspectBuf);
|
||||||
|
@ -417,7 +497,7 @@ void UI_FreeVideoModes (void)
|
||||||
|
|
||||||
|
|
||||||
char **ui_aniso_names = NULL;
|
char **ui_aniso_names = NULL;
|
||||||
//char **ui_aniso_values = NULL;
|
char **ui_aniso_values = NULL;
|
||||||
int ui_num_aniso_values = 0;
|
int ui_num_aniso_values = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -444,8 +524,8 @@ void UI_GetAnisoValues (void)
|
||||||
// allocate lists
|
// allocate lists
|
||||||
ui_aniso_names = malloc ((numValues+1) * sizeof(char *));
|
ui_aniso_names = malloc ((numValues+1) * sizeof(char *));
|
||||||
memset (ui_aniso_names, 0, (numValues+1) * sizeof(char *));
|
memset (ui_aniso_names, 0, (numValues+1) * sizeof(char *));
|
||||||
// ui_aniso_values = malloc ((numValues+1) * sizeof(char *));
|
ui_aniso_values = malloc ((numValues+1) * sizeof(char *));
|
||||||
// memset (ui_aniso_values, 0, (numValues+1) * sizeof(char *));
|
memset (ui_aniso_values, 0, (numValues+1) * sizeof(char *));
|
||||||
|
|
||||||
// set names and values
|
// set names and values
|
||||||
for (i=0; i<numValues; i++)
|
for (i=0; i<numValues; i++)
|
||||||
|
@ -454,7 +534,7 @@ void UI_GetAnisoValues (void)
|
||||||
ui_aniso_names[i] = (numValues == 1) ? strdup("not supported") : strdup("off");
|
ui_aniso_names[i] = (numValues == 1) ? strdup("not supported") : strdup("off");
|
||||||
else
|
else
|
||||||
ui_aniso_names[i] = strdup(va("%ix", 1<<i));
|
ui_aniso_names[i] = strdup(va("%ix", 1<<i));
|
||||||
// ui_aniso_values[i] = strdup(va("%i", 1<<i));
|
ui_aniso_values[i] = strdup(va("%i", 1<<i));
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_num_aniso_values = numValues;
|
ui_num_aniso_values = numValues;
|
||||||
|
@ -470,10 +550,10 @@ void UI_FreeAnisoValues (void)
|
||||||
{
|
{
|
||||||
if (ui_num_aniso_values > 0) {
|
if (ui_num_aniso_values > 0) {
|
||||||
FS_FreeFileList (ui_aniso_names, ui_num_aniso_values);
|
FS_FreeFileList (ui_aniso_names, ui_num_aniso_values);
|
||||||
// FS_FreeFileList (ui_aniso_values, ui_num_aniso_values);
|
FS_FreeFileList (ui_aniso_values, ui_num_aniso_values);
|
||||||
}
|
}
|
||||||
ui_aniso_names = NULL;
|
ui_aniso_names = NULL;
|
||||||
// ui_aniso_values = NULL;
|
ui_aniso_values = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -804,7 +884,7 @@ void UI_FreeHudNames (void)
|
||||||
#define UI_MAX_CROSSHAIRS 101 // none + ch1-ch100
|
#define UI_MAX_CROSSHAIRS 101 // none + ch1-ch100
|
||||||
char **ui_crosshair_names = NULL;
|
char **ui_crosshair_names = NULL;
|
||||||
//char **ui_crosshair_display_names = NULL;
|
//char **ui_crosshair_display_names = NULL;
|
||||||
//char **ui_crosshair_values = NULL;
|
char **ui_crosshair_values = NULL;
|
||||||
int ui_numcrosshairs = 0;
|
int ui_numcrosshairs = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -887,7 +967,7 @@ UI_LoadCrosshairs
|
||||||
*/
|
*/
|
||||||
void UI_LoadCrosshairs (void)
|
void UI_LoadCrosshairs (void)
|
||||||
{
|
{
|
||||||
// int i;
|
int i;
|
||||||
|
|
||||||
ui_crosshair_names = UI_LoadAssetList ("pics", "ch*.*", "none", &ui_numcrosshairs, UI_MAX_CROSSHAIRS, true, false, UI_IsValidCrosshairName);
|
ui_crosshair_names = UI_LoadAssetList ("pics", "ch*.*", "none", &ui_numcrosshairs, UI_MAX_CROSSHAIRS, true, false, UI_IsValidCrosshairName);
|
||||||
UI_SortCrosshairs (ui_crosshair_names, ui_numcrosshairs);
|
UI_SortCrosshairs (ui_crosshair_names, ui_numcrosshairs);
|
||||||
|
@ -895,12 +975,12 @@ void UI_LoadCrosshairs (void)
|
||||||
/* ui_crosshair_display_names = malloc( sizeof(char *) * (UI_MAX_CROSSHAIRS+1) );
|
/* ui_crosshair_display_names = malloc( sizeof(char *) * (UI_MAX_CROSSHAIRS+1) );
|
||||||
memcpy(ui_crosshair_display_names, ui_crosshair_names, sizeof(char *) * (UI_MAX_CROSSHAIRS+1));
|
memcpy(ui_crosshair_display_names, ui_crosshair_names, sizeof(char *) * (UI_MAX_CROSSHAIRS+1));
|
||||||
ui_crosshair_display_names[0] = strdup("chnone");
|
ui_crosshair_display_names[0] = strdup("chnone");
|
||||||
|
*/
|
||||||
ui_crosshair_values = malloc( sizeof(char *) * (UI_MAX_CROSSHAIRS+1) );
|
ui_crosshair_values = malloc( sizeof(char *) * (UI_MAX_CROSSHAIRS+1) );
|
||||||
memset(ui_crosshair_values, 0, sizeof(char *) * (UI_MAX_CROSSHAIRS+1) );
|
memset(ui_crosshair_values, 0, sizeof(char *) * (UI_MAX_CROSSHAIRS+1) );
|
||||||
|
|
||||||
for (i=0; i<ui_numcrosshairs; i++)
|
for (i=0; i<ui_numcrosshairs; i++)
|
||||||
ui_crosshair_values[i] = (i == 0) ? strdup("0") : strdup(strtok(ui_crosshair_names[i], "ch")); */
|
ui_crosshair_values[i] = (i == 0) ? strdup("0") : strdup(strtok(ui_crosshair_names[i], "ch"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -920,12 +1000,12 @@ void UI_FreeCrosshairs (void)
|
||||||
free (ui_crosshair_display_names[0]);
|
free (ui_crosshair_display_names[0]);
|
||||||
}
|
}
|
||||||
free (ui_crosshair_display_names);
|
free (ui_crosshair_display_names);
|
||||||
}
|
} */
|
||||||
FS_FreeFileList (ui_crosshair_values, ui_numcrosshairs); */
|
FS_FreeFileList (ui_crosshair_values, ui_numcrosshairs);
|
||||||
}
|
}
|
||||||
ui_crosshair_names = NULL;
|
ui_crosshair_names = NULL;
|
||||||
// ui_crosshair_display_names = NULL;
|
// ui_crosshair_display_names = NULL;
|
||||||
// ui_crosshair_values = NULL;
|
ui_crosshair_values = NULL;
|
||||||
ui_numcrosshairs = 0;
|
ui_numcrosshairs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
217
ui/ui_widgets.c
217
ui/ui_widgets.c
|
@ -66,13 +66,19 @@ extern viddef_t viddef;
|
||||||
|
|
||||||
void MenuAction_DoEnter (menuaction_s *a)
|
void MenuAction_DoEnter (menuaction_s *a)
|
||||||
{
|
{
|
||||||
|
if (!a) return;
|
||||||
|
|
||||||
if (a->generic.callback)
|
if (a->generic.callback)
|
||||||
a->generic.callback(a);
|
a->generic.callback(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuAction_Draw (menuaction_s *a)
|
void MenuAction_Draw (menuaction_s *a)
|
||||||
{
|
{
|
||||||
int alpha = UI_MouseOverAlpha(&a->generic);
|
int alpha;
|
||||||
|
|
||||||
|
if (!a) return;
|
||||||
|
|
||||||
|
alpha = UI_MouseOverAlpha(&a->generic);
|
||||||
|
|
||||||
if (a->generic.flags & QMF_LEFT_JUSTIFY)
|
if (a->generic.flags & QMF_LEFT_JUSTIFY)
|
||||||
{
|
{
|
||||||
|
@ -96,8 +102,12 @@ void MenuAction_Draw (menuaction_s *a)
|
||||||
a->generic.ownerdraw(a);
|
a->generic.ownerdraw(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
|
||||||
qboolean MenuField_DoEnter (menufield_s *f)
|
qboolean MenuField_DoEnter (menufield_s *f)
|
||||||
{
|
{
|
||||||
|
if (!f) return false;
|
||||||
|
|
||||||
if (f->generic.callback)
|
if (f->generic.callback)
|
||||||
{
|
{
|
||||||
f->generic.callback(f);
|
f->generic.callback(f);
|
||||||
|
@ -108,10 +118,14 @@ qboolean MenuField_DoEnter (menufield_s *f)
|
||||||
|
|
||||||
void MenuField_Draw (menufield_s *f)
|
void MenuField_Draw (menufield_s *f)
|
||||||
{
|
{
|
||||||
int i, alpha = UI_MouseOverAlpha(&f->generic), xtra;
|
int i, alpha, xtra;
|
||||||
char tempbuffer[128]="";
|
char tempbuffer[128]="";
|
||||||
int offset;
|
int offset;
|
||||||
|
|
||||||
|
if (!f) return;
|
||||||
|
|
||||||
|
alpha = UI_MouseOverAlpha(&f->generic);
|
||||||
|
|
||||||
if (f->generic.name)
|
if (f->generic.name)
|
||||||
UI_DrawStringR2LDark (f->generic.x + f->generic.parent->x + LCOLUMN_OFFSET,
|
UI_DrawStringR2LDark (f->generic.x + f->generic.parent->x + LCOLUMN_OFFSET,
|
||||||
f->generic.y + f->generic.parent->y, f->generic.textSize, f->generic.name, 255);
|
f->generic.y + f->generic.parent->y, f->generic.textSize, f->generic.name, 255);
|
||||||
|
@ -182,6 +196,8 @@ qboolean UI_MenuField_Key (menufield_s *f, int key)
|
||||||
{
|
{
|
||||||
extern int keydown[];
|
extern int keydown[];
|
||||||
|
|
||||||
|
if (!f) return false;
|
||||||
|
|
||||||
switch ( key )
|
switch ( key )
|
||||||
{
|
{
|
||||||
case K_KP_SLASH:
|
case K_KP_SLASH:
|
||||||
|
@ -311,13 +327,17 @@ qboolean UI_MenuField_Key (menufield_s *f, int key)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
|
||||||
void Menulist_DoEnter (menulist_s *l)
|
void Menulist_DoEnter (menulist_s *l)
|
||||||
{
|
{
|
||||||
int start;
|
int start;
|
||||||
|
|
||||||
|
if (!l) return;
|
||||||
|
|
||||||
start = l->generic.y / 10 + 1;
|
start = l->generic.y / 10 + 1;
|
||||||
|
|
||||||
l->curvalue = l->generic.parent->cursor - start;
|
l->curValue = l->generic.parent->cursor - start;
|
||||||
|
|
||||||
if (l->generic.callback)
|
if (l->generic.callback)
|
||||||
l->generic.callback(l);
|
l->generic.callback(l);
|
||||||
|
@ -326,16 +346,20 @@ void Menulist_DoEnter (menulist_s *l)
|
||||||
void MenuList_Draw (menulist_s *l)
|
void MenuList_Draw (menulist_s *l)
|
||||||
{
|
{
|
||||||
const char **n;
|
const char **n;
|
||||||
int y = 0, alpha = UI_MouseOverAlpha(&l->generic);
|
int y = 0, alpha;
|
||||||
|
|
||||||
|
if (!l) return;
|
||||||
|
|
||||||
|
alpha = UI_MouseOverAlpha(&l->generic);
|
||||||
|
|
||||||
UI_DrawStringR2LDark (l->generic.x + l->generic.parent->x + LCOLUMN_OFFSET, // - 2*MENU_FONT_SIZE,
|
UI_DrawStringR2LDark (l->generic.x + l->generic.parent->x + LCOLUMN_OFFSET, // - 2*MENU_FONT_SIZE,
|
||||||
l->generic.y + l->generic.parent->y, l->generic.textSize, l->generic.name, alpha);
|
l->generic.y + l->generic.parent->y, l->generic.textSize, l->generic.name, alpha);
|
||||||
|
|
||||||
n = l->itemnames;
|
n = l->itemNames;
|
||||||
|
|
||||||
// UI_DrawFill (l->generic.parent->x + l->generic.x - 112, l->generic.parent->y + l->generic.y + (l->curvalue+1)*MENU_LINE_SIZE,
|
// UI_DrawFill (l->generic.parent->x + l->generic.x - 112, l->generic.parent->y + l->generic.y + (l->curValue+1)*MENU_LINE_SIZE,
|
||||||
// 128, MENU_LINE_SIZE, ALIGN_CENTER, false, 16);
|
// 128, MENU_LINE_SIZE, ALIGN_CENTER, false, 16);
|
||||||
UI_DrawFill (l->generic.parent->x + l->generic.x - 112, l->generic.parent->y + l->generic.y + (l->curvalue+1)*MENU_LINE_SIZE,
|
UI_DrawFill (l->generic.parent->x + l->generic.x - 112, l->generic.parent->y + l->generic.y + (l->curValue+1)*MENU_LINE_SIZE,
|
||||||
128, MENU_LINE_SIZE, ALIGN_CENTER, false, color8red(16), color8green(16), color8blue(16), 255);
|
128, MENU_LINE_SIZE, ALIGN_CENTER, false, color8red(16), color8green(16), color8blue(16), 255);
|
||||||
|
|
||||||
while (*n)
|
while (*n)
|
||||||
|
@ -347,26 +371,49 @@ void MenuList_Draw (menulist_s *l)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
|
||||||
void MenuSeparator_Draw (menuseparator_s *s)
|
void MenuSeparator_Draw (menuseparator_s *s)
|
||||||
{
|
{
|
||||||
int alpha = UI_MouseOverAlpha(&s->generic);
|
int alpha;
|
||||||
|
|
||||||
|
if (!s) return;
|
||||||
|
|
||||||
|
alpha = UI_MouseOverAlpha(&s->generic);
|
||||||
|
|
||||||
if (s->generic.name)
|
if (s->generic.name)
|
||||||
UI_DrawStringR2LDark (s->generic.x + s->generic.parent->x,
|
UI_DrawStringR2LDark (s->generic.x + s->generic.parent->x,
|
||||||
s->generic.y + s->generic.parent->y, s->generic.textSize, s->generic.name, alpha);
|
s->generic.y + s->generic.parent->y, s->generic.textSize, s->generic.name, alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UI_MenuSlider_SetValue (menuslider_s *s, float value)
|
//=========================================================
|
||||||
|
|
||||||
|
void UI_MenuSlider_SetValue (menuslider_s *s, const char *varName, float cvarMin, float cvarMax, qboolean clamp)
|
||||||
{
|
{
|
||||||
|
if (!s || !varName || varName[0] == '\0')
|
||||||
|
return;
|
||||||
if (!s->increment)
|
if (!s->increment)
|
||||||
s->increment = 1.0f;
|
s->increment = 1.0f;
|
||||||
|
|
||||||
s->curPos = (int)ceil((value - s->baseValue) / s->increment);
|
if (clamp) {
|
||||||
|
UI_ClampCvar (varName, cvarMin, cvarMax);
|
||||||
|
}
|
||||||
|
s->curPos = (int)ceil((Cvar_VariableValue((char *)varName) - s->baseValue) / s->increment);
|
||||||
s->curPos = min(max(s->curPos, 0), s->maxPos);
|
s->curPos = min(max(s->curPos, 0), s->maxPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UI_MenuSlider_SaveValue (menuslider_s *s, const char *varName)
|
||||||
|
{
|
||||||
|
if (!s || !varName || varName[0] == '\0')
|
||||||
|
return;
|
||||||
|
|
||||||
|
Cvar_SetValue ((char *)varName, ((float)s->curPos * s->increment) + s->baseValue);
|
||||||
|
}
|
||||||
|
|
||||||
float UI_MenuSlider_GetValue (menuslider_s *s)
|
float UI_MenuSlider_GetValue (menuslider_s *s)
|
||||||
{
|
{
|
||||||
|
if (!s) return 0.0f;
|
||||||
|
|
||||||
if (!s->increment)
|
if (!s->increment)
|
||||||
s->increment = 1.0f;
|
s->increment = 1.0f;
|
||||||
|
|
||||||
|
@ -375,6 +422,8 @@ float UI_MenuSlider_GetValue (menuslider_s *s)
|
||||||
|
|
||||||
void MenuSlider_DoSlide (menuslider_s *s, int dir)
|
void MenuSlider_DoSlide (menuslider_s *s, int dir)
|
||||||
{
|
{
|
||||||
|
if (!s) return;
|
||||||
|
|
||||||
s->curPos += dir;
|
s->curPos += dir;
|
||||||
|
|
||||||
s->curPos = min(max(s->curPos, 0), s->maxPos);
|
s->curPos = min(max(s->curPos, 0), s->maxPos);
|
||||||
|
@ -387,10 +436,14 @@ void MenuSlider_DoSlide (menuslider_s *s, int dir)
|
||||||
|
|
||||||
void MenuSlider_Draw (menuslider_s *s)
|
void MenuSlider_Draw (menuslider_s *s)
|
||||||
{
|
{
|
||||||
int i, x, y, alpha = UI_MouseOverAlpha(&s->generic);
|
int i, x, y, alpha;
|
||||||
float tmpValue;
|
float tmpValue;
|
||||||
char valueText[8];
|
char valueText[8];
|
||||||
|
|
||||||
|
if (!s) return;
|
||||||
|
|
||||||
|
alpha = UI_MouseOverAlpha(&s->generic);
|
||||||
|
|
||||||
UI_DrawStringR2LDark (s->generic.x + s->generic.parent->x + LCOLUMN_OFFSET,
|
UI_DrawStringR2LDark (s->generic.x + s->generic.parent->x + LCOLUMN_OFFSET,
|
||||||
s->generic.y + s->generic.parent->y, s->generic.textSize, s->generic.name, alpha);
|
s->generic.y + s->generic.parent->y, s->generic.textSize, s->generic.name, alpha);
|
||||||
|
|
||||||
|
@ -454,14 +507,93 @@ void MenuSlider_Draw (menuslider_s *s)
|
||||||
// s->generic.y + s->generic.parent->y + 1, MENU_FONT_SIZE-2, valueText, alpha);
|
// s->generic.y + s->generic.parent->y + 1, MENU_FONT_SIZE-2, valueText, alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuSpinControl_DoEnter (menulist_s *s)
|
//=========================================================
|
||||||
|
|
||||||
|
void UI_MenuSpinControl_SetValue (menulist_s *s, const char *varName, float cvarMin, float cvarMax, qboolean clamp)
|
||||||
{
|
{
|
||||||
if (!s->itemnames || !s->numitemnames)
|
if (!s || !varName || varName[0] == '\0')
|
||||||
return;
|
return;
|
||||||
|
|
||||||
s->curvalue++;
|
if (clamp) {
|
||||||
if (s->itemnames[s->curvalue] == 0)
|
UI_ClampCvar (varName, cvarMin, cvarMax);
|
||||||
s->curvalue = 0;
|
}
|
||||||
|
if (s->itemValues) {
|
||||||
|
s->curValue = UI_GetIndexForStringValue(s->itemValues, Cvar_VariableString((char *)varName));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (s->invertValue) {
|
||||||
|
s->curValue = (Cvar_VariableValue((char *)varName) < 0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
s->curValue = (int)min(max(Cvar_VariableValue((char *)varName), cvarMin), cvarMax);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UI_MenuSpinControl_SaveValue (menulist_s *s, const char *varName)
|
||||||
|
{
|
||||||
|
if (!s || !varName || varName[0] == '\0')
|
||||||
|
return;
|
||||||
|
if (!s->numItems) {
|
||||||
|
Com_Printf (S_COLOR_YELLOW"UI_MenuSpinControl_SaveValue: not initialized!\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ( (s->curValue < 0) || (s->curValue >= s->numItems) ) {
|
||||||
|
Com_Printf (S_COLOR_YELLOW"UI_MenuSpinControl_SaveValue: curvalue out of bounds!\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s->itemValues) {
|
||||||
|
// Don't save to cvar if this itemvalue is the wildcard
|
||||||
|
if ( Q_stricmp(va("%s", s->itemValues[s->curValue]), UI_ITEMVALUE_WILDCARD) != 0 )
|
||||||
|
Cvar_Set ((char *)varName, va("%s", s->itemValues[s->curValue]));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (s->invertValue) {
|
||||||
|
Cvar_SetValue ((char *)varName, Cvar_VariableValue((char *)varName) * -1 );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Cvar_SetInteger ((char *)varName, s->curValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *UI_MenuSpinControl_GetValue (menulist_s *s)
|
||||||
|
{
|
||||||
|
const char *value;
|
||||||
|
|
||||||
|
if (!s)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (!s->numItems) {
|
||||||
|
Com_Printf (S_COLOR_YELLOW"UI_MenuSpinControl_GetValue: not initialized!\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if ( (s->curValue < 0) || (s->curValue >= s->numItems) ) {
|
||||||
|
Com_Printf (S_COLOR_YELLOW"UI_MenuSpinControl_GetValue: curvalue out of bounds!\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s->itemValues) {
|
||||||
|
value = s->itemValues[s->curValue];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
value = va("%d", s->curValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuSpinControl_DoEnter (menulist_s *s)
|
||||||
|
{
|
||||||
|
if (!s || !s->itemNames || !s->numItems)
|
||||||
|
return;
|
||||||
|
|
||||||
|
s->curValue++;
|
||||||
|
if (s->itemNames[s->curValue] == 0)
|
||||||
|
s->curValue = 0;
|
||||||
|
|
||||||
if (s->generic.callback)
|
if (s->generic.callback)
|
||||||
s->generic.callback(s);
|
s->generic.callback(s);
|
||||||
|
@ -469,23 +601,23 @@ void MenuSpinControl_DoEnter (menulist_s *s)
|
||||||
|
|
||||||
void MenuSpinControl_DoSlide (menulist_s *s, int dir)
|
void MenuSpinControl_DoSlide (menulist_s *s, int dir)
|
||||||
{
|
{
|
||||||
if (!s->itemnames || !s->numitemnames)
|
if (!s || !s->itemNames || !s->numItems)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
s->curvalue += dir;
|
s->curValue += dir;
|
||||||
|
|
||||||
if (s->generic.flags & QMF_SKINLIST) // don't allow looping around for skin lists
|
if (s->generic.flags & QMF_SKINLIST) // don't allow looping around for skin lists
|
||||||
{
|
{
|
||||||
if (s->curvalue < 0)
|
if (s->curValue < 0)
|
||||||
s->curvalue = 0;
|
s->curValue = 0;
|
||||||
else if (s->itemnames[s->curvalue] == 0)
|
else if (s->itemNames[s->curValue] == 0)
|
||||||
s->curvalue--;
|
s->curValue--;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (s->curvalue < 0)
|
if (s->curValue < 0)
|
||||||
s->curvalue = s->numitemnames-1; // was 0
|
s->curValue = s->numItems-1; // was 0
|
||||||
else if (s->itemnames[s->curvalue] == 0)
|
else if (s->itemNames[s->curValue] == 0)
|
||||||
s->curvalue = 0; // was --
|
s->curValue = 0; // was --
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->generic.callback)
|
if (s->generic.callback)
|
||||||
|
@ -494,33 +626,40 @@ void MenuSpinControl_DoSlide (menulist_s *s, int dir)
|
||||||
|
|
||||||
void MenuSpinControl_Draw (menulist_s *s)
|
void MenuSpinControl_Draw (menulist_s *s)
|
||||||
{
|
{
|
||||||
int alpha = UI_MouseOverAlpha(&s->generic);
|
int alpha;
|
||||||
char buffer[100];
|
char buffer[100];
|
||||||
|
|
||||||
|
if (!s) return;
|
||||||
|
|
||||||
|
alpha = UI_MouseOverAlpha(&s->generic);
|
||||||
|
|
||||||
if (s->generic.name)
|
if (s->generic.name)
|
||||||
{
|
{
|
||||||
UI_DrawStringR2LDark (s->generic.x + s->generic.parent->x + LCOLUMN_OFFSET,
|
UI_DrawStringR2LDark (s->generic.x + s->generic.parent->x + LCOLUMN_OFFSET,
|
||||||
s->generic.y + s->generic.parent->y, s->generic.textSize, s->generic.name, alpha);
|
s->generic.y + s->generic.parent->y, s->generic.textSize, s->generic.name, alpha);
|
||||||
}
|
}
|
||||||
if (!strchr(s->itemnames[s->curvalue], '\n'))
|
if (!strchr(s->itemNames[s->curValue], '\n'))
|
||||||
{
|
{
|
||||||
UI_DrawString (s->generic.x + s->generic.parent->x + RCOLUMN_OFFSET,
|
UI_DrawString (s->generic.x + s->generic.parent->x + RCOLUMN_OFFSET,
|
||||||
s->generic.y + s->generic.parent->y, s->generic.textSize, s->itemnames[s->curvalue], alpha);
|
s->generic.y + s->generic.parent->y, s->generic.textSize, s->itemNames[s->curValue], alpha);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// strncpy(buffer, s->itemnames[s->curvalue]);
|
// strncpy(buffer, s->itemnames[s->curvalue]);
|
||||||
Q_strncpyz (buffer, sizeof(buffer), s->itemnames[s->curvalue]);
|
Q_strncpyz (buffer, sizeof(buffer), s->itemNames[s->curValue]);
|
||||||
*strchr(buffer, '\n') = 0;
|
*strchr(buffer, '\n') = 0;
|
||||||
UI_DrawString (s->generic.x + s->generic.parent->x + RCOLUMN_OFFSET,
|
UI_DrawString (s->generic.x + s->generic.parent->x + RCOLUMN_OFFSET,
|
||||||
s->generic.y + s->generic.parent->y, s->generic.textSize, buffer, alpha);
|
s->generic.y + s->generic.parent->y, s->generic.textSize, buffer, alpha);
|
||||||
// strncpy(buffer, strchr( s->itemnames[s->curvalue], '\n' ) + 1 );
|
// strncpy(buffer, strchr( s->itemnames[s->curvalue], '\n' ) + 1 );
|
||||||
Q_strncpyz (buffer, sizeof(buffer), strchr( s->itemnames[s->curvalue], '\n' ) + 1);
|
Q_strncpyz (buffer, sizeof(buffer), strchr( s->itemNames[s->curValue], '\n' ) + 1);
|
||||||
UI_DrawString (s->generic.x + s->generic.parent->x + RCOLUMN_OFFSET,
|
UI_DrawString (s->generic.x + s->generic.parent->x + RCOLUMN_OFFSET,
|
||||||
s->generic.y + s->generic.parent->y + MENU_LINE_SIZE, s->generic.textSize, buffer, alpha);
|
s->generic.y + s->generic.parent->y + MENU_LINE_SIZE, s->generic.textSize, buffer, alpha);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
|
||||||
|
|
||||||
//=========================================================
|
//=========================================================
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -570,7 +709,11 @@ UI_SelectMenuItem
|
||||||
*/
|
*/
|
||||||
qboolean UI_SelectMenuItem (menuframework_s *s)
|
qboolean UI_SelectMenuItem (menuframework_s *s)
|
||||||
{
|
{
|
||||||
menucommon_s *item = (menucommon_s *)UI_ItemAtMenuCursor(s);
|
menucommon_s *item=NULL;
|
||||||
|
|
||||||
|
if (!s) return false;
|
||||||
|
|
||||||
|
item = (menucommon_s *)UI_ItemAtMenuCursor(s);
|
||||||
|
|
||||||
if (item)
|
if (item)
|
||||||
{
|
{
|
||||||
|
@ -602,6 +745,8 @@ UI_MouseSelectItem
|
||||||
*/
|
*/
|
||||||
qboolean UI_MouseSelectItem (menucommon_s *item)
|
qboolean UI_MouseSelectItem (menucommon_s *item)
|
||||||
{
|
{
|
||||||
|
if (!item) return false;
|
||||||
|
|
||||||
if (item)
|
if (item)
|
||||||
{
|
{
|
||||||
switch (item->type)
|
switch (item->type)
|
||||||
|
@ -629,7 +774,11 @@ UI_SlideMenuItem
|
||||||
*/
|
*/
|
||||||
void UI_SlideMenuItem (menuframework_s *s, int dir)
|
void UI_SlideMenuItem (menuframework_s *s, int dir)
|
||||||
{
|
{
|
||||||
menucommon_s *item = (menucommon_s *) UI_ItemAtMenuCursor(s);
|
menucommon_s *item=NULL;
|
||||||
|
|
||||||
|
if (!s) return;
|
||||||
|
|
||||||
|
item = (menucommon_s *) UI_ItemAtMenuCursor(s);
|
||||||
|
|
||||||
if (item)
|
if (item)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2150,8 +2150,11 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
|
||||||
} while (time < 1);*/
|
} while (time < 1);*/
|
||||||
// Con_Printf ("time:%5.2f - %5.2f = %5.2f\n", newtime, oldtime, time);
|
// Con_Printf ("time:%5.2f - %5.2f = %5.2f\n", newtime, oldtime, time);
|
||||||
|
|
||||||
|
#if defined(_M_IX86) || defined(__i386__)
|
||||||
// _controlfp( ~( _EM_ZERODIVIDE /*| _EM_INVALID*/ ), _MCW_EM );
|
// _controlfp( ~( _EM_ZERODIVIDE /*| _EM_INVALID*/ ), _MCW_EM );
|
||||||
_controlfp( _PC_24, _MCW_PC );
|
_controlfp( _PC_24, _MCW_PC );
|
||||||
|
#endif
|
||||||
|
|
||||||
Qcommon_Frame (time);
|
Qcommon_Frame (time);
|
||||||
|
|
||||||
oldtime = newtime;
|
oldtime = newtime;
|
||||||
|
|
Loading…
Reference in a new issue