mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2025-02-08 17:32:14 +00:00
Custom resolution list. Post-vid_restart menu. New uiScripts. And stuff.
This commit is contained in:
parent
c0117946ea
commit
67ade644b3
6 changed files with 335 additions and 20 deletions
|
@ -579,6 +579,11 @@ qboolean UI_ConsoleCommand(int realTime)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (Q_stricmp(cmd, "ui_RQ3_postVidRestart") == 0) {
|
||||||
|
_UI_SetActiveMenu(UIMENU_RQ3_POST_VID_RESTART);
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
return qfalse;
|
return qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -280,6 +280,14 @@ extern vmCvar_t ui_maxpolyverts;
|
||||||
|
|
||||||
//Makro - player gender; irrelevant actually
|
//Makro - player gender; irrelevant actually
|
||||||
extern vmCvar_t ui_RQ3_gender;
|
extern vmCvar_t ui_RQ3_gender;
|
||||||
|
|
||||||
|
extern vmCvar_t ui_RQ3_old_r_mode;
|
||||||
|
extern vmCvar_t ui_RQ3_old_r_customWidth;
|
||||||
|
extern vmCvar_t ui_RQ3_old_r_customHeight;
|
||||||
|
extern vmCvar_t ui_RQ3_old_r_fullScreen;
|
||||||
|
extern vmCvar_t ui_RQ3_videoChanges;
|
||||||
|
extern vmCvar_t ui_RQ3_fullScreen;
|
||||||
|
|
||||||
//
|
//
|
||||||
// ui_qmenu.c
|
// ui_qmenu.c
|
||||||
//
|
//
|
||||||
|
|
|
@ -2948,6 +2948,31 @@ static void UI_DrawOpponentName(rectDef_t * rect, float scale, vec4_t color, int
|
||||||
textStyle, qfalse);
|
textStyle, qfalse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static qboolean UI_IsCurrentResolution(const resolution_t* res)
|
||||||
|
{
|
||||||
|
return (res->width == uiInfo.uiDC.glconfig.vidWidth && res->height == uiInfo.uiDC.glconfig.vidHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char* UI_GetCustomResolutionString()
|
||||||
|
{
|
||||||
|
int idx = uiInfo.uiDC.selectedMode;
|
||||||
|
|
||||||
|
if (idx == -2)
|
||||||
|
{
|
||||||
|
return "Custom";
|
||||||
|
}
|
||||||
|
else if (idx == -1 || uiInfo.uiDC.numSupportedModes <= 0)
|
||||||
|
{
|
||||||
|
return "Desktop Default";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char* fmt[2] = { "%d x %d", "%d x %d *" };
|
||||||
|
const resolution_t* res = &uiInfo.uiDC.supportedMode[idx];
|
||||||
|
return va(fmt[UI_IsCurrentResolution(res)], res->width, res->height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int UI_OwnerDrawWidth(int ownerDraw, float scale)
|
static int UI_OwnerDrawWidth(int ownerDraw, float scale)
|
||||||
{
|
{
|
||||||
int i, h, value;
|
int i, h, value;
|
||||||
|
@ -3070,6 +3095,9 @@ static int UI_OwnerDrawWidth(int ownerDraw, float scale)
|
||||||
case UI_RQ3_REPLACEMENTINFO:
|
case UI_RQ3_REPLACEMENTINFO:
|
||||||
s = uiInfo.replacements.Info;
|
s = uiInfo.replacements.Info;
|
||||||
break;
|
break;
|
||||||
|
case UI_RESOLUTION:
|
||||||
|
//s = UI_GetCustomResolutionString();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -4004,6 +4032,19 @@ static void UI_DrawReplacementModel(rectDef_t *rect)
|
||||||
uiInfo.uiDC.renderScene(&refdef);
|
uiInfo.uiDC.renderScene(&refdef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Makro - custom resolutions
|
||||||
|
static void UI_DrawResolution(rectDef_t * rect, float scale, vec4_t color, int textStyle)
|
||||||
|
{
|
||||||
|
const char *text = UI_GetCustomResolutionString();
|
||||||
|
|
||||||
|
if (!rect->hasVectors) {
|
||||||
|
Text_Paint(rect->x, rect->y, scale, color, text, 0, 0, 0, textStyle, qfalse);
|
||||||
|
} else {
|
||||||
|
Text_PaintAngled(rect->x, rect->y,
|
||||||
|
rect->u, rect->v, scale, color, text, 0, 0, 0, textStyle, qfalse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// FIXME: table drive
|
// FIXME: table drive
|
||||||
//
|
//
|
||||||
|
@ -4018,7 +4059,7 @@ static void UI_OwnerDraw(itemDef_t *item, float x, float y, float w, float h, fl
|
||||||
rect.h = h;
|
rect.h = h;
|
||||||
if (item->window.rectClient.hasVectors)
|
if (item->window.rectClient.hasVectors)
|
||||||
{
|
{
|
||||||
float p[2];
|
float* p = &rect.x;
|
||||||
|
|
||||||
p[0] = x;
|
p[0] = x;
|
||||||
p[1] = y;
|
p[1] = y;
|
||||||
|
@ -4026,8 +4067,7 @@ static void UI_OwnerDraw(itemDef_t *item, float x, float y, float w, float h, fl
|
||||||
Vector2Copy(item->window.rectClient.v, rect.v);
|
Vector2Copy(item->window.rectClient.v, rect.v);
|
||||||
Vector2MA(p, text_x, rect.u, p);
|
Vector2MA(p, text_x, rect.u, p);
|
||||||
Vector2MA(p, text_y, rect.v, p);
|
Vector2MA(p, text_y, rect.v, p);
|
||||||
rect.x = p[0];
|
//Vector2MA(p, item->textaligny * scale, rect.v, p);
|
||||||
rect.y = p[1];
|
|
||||||
rect.hasVectors = qtrue;
|
rect.hasVectors = qtrue;
|
||||||
} else {
|
} else {
|
||||||
rect.hasVectors = qfalse;
|
rect.hasVectors = qfalse;
|
||||||
|
@ -4237,6 +4277,9 @@ static void UI_OwnerDraw(itemDef_t *item, float x, float y, float w, float h, fl
|
||||||
case UI_KEYBINDSTATUS:
|
case UI_KEYBINDSTATUS:
|
||||||
UI_DrawKeyBindStatus(item, &rect, scale, color, textStyle);
|
UI_DrawKeyBindStatus(item, &rect, scale, color, textStyle);
|
||||||
break;
|
break;
|
||||||
|
case UI_RESOLUTION:
|
||||||
|
UI_DrawResolution(&rect, scale, color, textStyle);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -5050,6 +5093,46 @@ static qboolean UI_ReplacementSubType_HandleKey(int flags, float *special, int k
|
||||||
return qfalse;
|
return qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static qboolean UI_Resolution_HandleKey(int flags, float *special, int key)
|
||||||
|
{
|
||||||
|
if (uiInfo.uiDC.numSupportedModes <= 0)
|
||||||
|
return qfalse;
|
||||||
|
|
||||||
|
if (key == K_MOUSE1 || key == K_MOUSE2 || key == K_ENTER || key == K_KP_ENTER || key == K_LEFTARROW || key == K_RIGHTARROW)
|
||||||
|
{
|
||||||
|
int index = uiInfo.uiDC.selectedMode;
|
||||||
|
|
||||||
|
if (key == K_MOUSE2 || key == K_LEFTARROW) {
|
||||||
|
index--;
|
||||||
|
} else {
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index == uiInfo.uiDC.numSupportedModes)
|
||||||
|
index = -1;
|
||||||
|
else if (index == -2)
|
||||||
|
index = uiInfo.uiDC.numSupportedModes - 1;
|
||||||
|
|
||||||
|
uiInfo.uiDC.selectedMode = index;
|
||||||
|
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key == K_HOME)
|
||||||
|
{
|
||||||
|
uiInfo.uiDC.selectedMode = -1;
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key == K_END)
|
||||||
|
{
|
||||||
|
uiInfo.uiDC.selectedMode = uiInfo.uiDC.numSupportedModes - 1;
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
|
|
||||||
static qboolean UI_OwnerDrawHandleKey(int ownerDraw, int flags, float *special, int key)
|
static qboolean UI_OwnerDrawHandleKey(int ownerDraw, int flags, float *special, int key)
|
||||||
{
|
{
|
||||||
switch (ownerDraw) {
|
switch (ownerDraw) {
|
||||||
|
@ -5130,6 +5213,9 @@ static qboolean UI_OwnerDrawHandleKey(int ownerDraw, int flags, float *special,
|
||||||
case UI_SELECTEDPLAYER:
|
case UI_SELECTEDPLAYER:
|
||||||
UI_SelectedPlayer_HandleKey(flags, special, key);
|
UI_SelectedPlayer_HandleKey(flags, special, key);
|
||||||
break;
|
break;
|
||||||
|
case UI_RESOLUTION:
|
||||||
|
UI_Resolution_HandleKey(flags, special, key);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -5712,6 +5798,159 @@ static void UI_Update(const char *name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static qboolean UI_ParseResolution(char* str, int* width, int* height)
|
||||||
|
{
|
||||||
|
char* x = strchr(str, 'x');
|
||||||
|
if (!x)
|
||||||
|
{
|
||||||
|
*width = *height = 0;
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
|
|
||||||
|
*x++ = 0;
|
||||||
|
|
||||||
|
if (1 != sscanf(str, "%d", width) || 1 != sscanf(x, "%d", height))
|
||||||
|
{
|
||||||
|
*width = *height = 0;
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
|
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void UI_SelectCurrentResolution()
|
||||||
|
{
|
||||||
|
int idx;
|
||||||
|
int r_mode = (int) trap_Cvar_VariableValue("r_mode");
|
||||||
|
|
||||||
|
if (r_mode == -2)
|
||||||
|
{
|
||||||
|
uiInfo.uiDC.selectedMode = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
uiInfo.uiDC.selectedMode = -2;
|
||||||
|
for (idx=0; idx<uiInfo.uiDC.numSupportedModes; ++idx)
|
||||||
|
{
|
||||||
|
if (UI_IsCurrentResolution(&uiInfo.uiDC.supportedMode[idx]))
|
||||||
|
uiInfo.uiDC.selectedMode = idx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void UI_GetSupportedModes()
|
||||||
|
{
|
||||||
|
char buf[4096] = { 0 };
|
||||||
|
const char* delim = " ";
|
||||||
|
char* tok;
|
||||||
|
int idx;
|
||||||
|
|
||||||
|
uiInfo.uiDC.numSupportedModes = 0;
|
||||||
|
uiInfo.uiDC.selectedMode = 0;
|
||||||
|
|
||||||
|
trap_Cvar_VariableStringBuffer("r_availableModes", buf, sizeof(buf));
|
||||||
|
|
||||||
|
for (tok=strtok(buf, delim); tok; tok=strtok(NULL, delim))
|
||||||
|
{
|
||||||
|
int width, height;
|
||||||
|
if (UI_ParseResolution(tok, &width, &height))
|
||||||
|
{
|
||||||
|
idx = uiInfo.uiDC.numSupportedModes++;
|
||||||
|
if (uiInfo.uiDC.numSupportedModes > MAX_NUM_SUPPORTED_MODES)
|
||||||
|
{
|
||||||
|
Com_Printf(S_COLOR_YELLOW "Warning: more than MAX_NUM_SUPPORTED_MODES resolutions found.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uiInfo.uiDC.supportedMode[idx].width = width;
|
||||||
|
uiInfo.uiDC.supportedMode[idx].height = height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// O(n^2) sort
|
||||||
|
|
||||||
|
for (idx=0; idx<uiInfo.uiDC.numSupportedModes-1; ++idx)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
resolution_t* ri = &uiInfo.uiDC.supportedMode[idx];
|
||||||
|
for (j=idx+1; j<uiInfo.uiDC.numSupportedModes; ++j)
|
||||||
|
{
|
||||||
|
resolution_t* rj = &uiInfo.uiDC.supportedMode[j];
|
||||||
|
if (rj->width < ri->width || (rj->width == ri->width && rj->height < ri->height))
|
||||||
|
{
|
||||||
|
resolution_t tmp = *ri;
|
||||||
|
*ri = *rj;
|
||||||
|
*rj = tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UI_SelectCurrentResolution();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void UI_InitSystemSettings()
|
||||||
|
{
|
||||||
|
UI_SelectCurrentResolution();
|
||||||
|
}
|
||||||
|
|
||||||
|
static qboolean UI_ChangeVideoCvarAndBackup(const char* name, const char* backup, int value)
|
||||||
|
{
|
||||||
|
int oldValue = (int) trap_Cvar_VariableValue(name);
|
||||||
|
trap_Cvar_SetValue(backup, oldValue);
|
||||||
|
trap_Cvar_SetValue(name, value);
|
||||||
|
return oldValue != value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static qboolean UI_BackupVideoCvar(const char* src, const char* dst)
|
||||||
|
{
|
||||||
|
int oldValue = (int) trap_Cvar_VariableValue(dst);
|
||||||
|
int value = (int) trap_Cvar_VariableValue(src);
|
||||||
|
trap_Cvar_SetValue(dst, value);
|
||||||
|
return value != oldValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void UI_ApplySystemSettings()
|
||||||
|
{
|
||||||
|
int fullScreen = (int) trap_Cvar_VariableValue("ui_RQ3_fullScreen");
|
||||||
|
qboolean changed = UI_ChangeVideoCvarAndBackup("r_fullscreen", "ui_RQ3_old_r_fullScreen", fullScreen);
|
||||||
|
|
||||||
|
if (uiInfo.uiDC.selectedMode == -2)
|
||||||
|
{
|
||||||
|
// keep current settings
|
||||||
|
UI_BackupVideoCvar("r_mode", "ui_RQ3_old_r_mode");
|
||||||
|
}
|
||||||
|
else if (uiInfo.uiDC.selectedMode != -1 && uiInfo.uiDC.numSupportedModes > 0)
|
||||||
|
{
|
||||||
|
changed |=
|
||||||
|
UI_ChangeVideoCvarAndBackup("r_mode", "ui_RQ3_old_r_mode", -1) |
|
||||||
|
UI_ChangeVideoCvarAndBackup("r_customWidth", "ui_RQ3_old_r_customWidth", uiInfo.uiDC.supportedMode[uiInfo.uiDC.selectedMode].width) |
|
||||||
|
UI_ChangeVideoCvarAndBackup("r_customHeight", "ui_RQ3_old_r_customHeight", uiInfo.uiDC.supportedMode[uiInfo.uiDC.selectedMode].height)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
changed |= UI_ChangeVideoCvarAndBackup("r_mode", "ui_RQ3_old_r_mode", -2);
|
||||||
|
UI_BackupVideoCvar("r_customwidth", "ui_RQ3_old_r_customWidth");
|
||||||
|
UI_BackupVideoCvar("r_customheight", "ui_RQ3_old_r_customHeight");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (changed)
|
||||||
|
{
|
||||||
|
trap_Cvar_Set("ui_RQ3_videoChanges", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
trap_Cmd_ExecuteText(EXEC_APPEND, "vid_restart;");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void UI_RevertVideoSettings()
|
||||||
|
{
|
||||||
|
UI_BackupVideoCvar("ui_RQ3_old_r_mode", "r_mode");
|
||||||
|
UI_BackupVideoCvar("ui_RQ3_old_r_customWidth", "r_customwidth");
|
||||||
|
UI_BackupVideoCvar("ui_RQ3_old_r_customHeight", "r_customheight");
|
||||||
|
UI_BackupVideoCvar("ui_RQ3_old_r_fullScreen", "r_fullscreen");
|
||||||
|
|
||||||
|
trap_Cmd_ExecuteText(EXEC_APPEND, "vid_restart;");
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: Makro - this is a monster of a function
|
// FIXME: Makro - this is a monster of a function
|
||||||
// Not exactly efficient with all this strcmp's in it, either...
|
// Not exactly efficient with all this strcmp's in it, either...
|
||||||
|
|
||||||
|
@ -6012,6 +6251,12 @@ static void UI_RunMenuScript(char **args)
|
||||||
Controls_SetConfig(qtrue);
|
Controls_SetConfig(qtrue);
|
||||||
} else if (Q_stricmp(name, "loadControls") == 0) {
|
} else if (Q_stricmp(name, "loadControls") == 0) {
|
||||||
Controls_GetConfig();
|
Controls_GetConfig();
|
||||||
|
} else if (Q_stricmp(name, "initSystemSettings") == 0) {
|
||||||
|
UI_InitSystemSettings();
|
||||||
|
} else if (Q_stricmp(name, "applySystemSettings") == 0) {
|
||||||
|
UI_ApplySystemSettings();
|
||||||
|
} else if (Q_stricmp(name, "revertVideoSettings") == 0) {
|
||||||
|
UI_RevertVideoSettings();
|
||||||
} else if (Q_stricmp(name, "clearError") == 0) {
|
} else if (Q_stricmp(name, "clearError") == 0) {
|
||||||
trap_Cvar_Set("com_errorMessage", "");
|
trap_Cvar_Set("com_errorMessage", "");
|
||||||
} else if (Q_stricmp(name, "loadGameInfo") == 0) {
|
} else if (Q_stricmp(name, "loadGameInfo") == 0) {
|
||||||
|
@ -8256,6 +8501,25 @@ static void UI_MakeExtensionsList( void )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static qboolean UI_VidRestartPopup(qboolean inGame)
|
||||||
|
{
|
||||||
|
int changes = (int) trap_Cvar_VariableValue("ui_RQ3_videoChanges");
|
||||||
|
if (changes)
|
||||||
|
{
|
||||||
|
trap_Cvar_Set("ui_RQ3_videoChanges", "0");
|
||||||
|
// popup menu
|
||||||
|
if (inGame)
|
||||||
|
{
|
||||||
|
trap_Cvar_Set("cl_paused", "1");
|
||||||
|
trap_Key_SetCatcher(KEYCATCH_UI);
|
||||||
|
Menus_CloseAll();
|
||||||
|
}
|
||||||
|
Menus_ActivateByName("post_vid_restart", qfalse);
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
UI_Init
|
UI_Init
|
||||||
|
@ -8278,6 +8542,8 @@ void _UI_Init(qboolean inGameLoad)
|
||||||
|
|
||||||
// cache redundant calulations
|
// cache redundant calulations
|
||||||
trap_GetGlconfig(&uiInfo.uiDC.glconfig);
|
trap_GetGlconfig(&uiInfo.uiDC.glconfig);
|
||||||
|
UI_GetSupportedModes();
|
||||||
|
UI_BackupVideoCvar("r_fullscreen", "ui_RQ3_fullScreen");
|
||||||
|
|
||||||
UI_MakeExtensionsList();
|
UI_MakeExtensionsList();
|
||||||
|
|
||||||
|
@ -8623,12 +8889,10 @@ void _UI_SetActiveMenu(uiMenuCommand_t menu)
|
||||||
trap_Cvar_Set("com_errorMessage", "");
|
trap_Cvar_Set("com_errorMessage", "");
|
||||||
}
|
}
|
||||||
//Makro - check com_hunkmegs
|
//Makro - check com_hunkmegs
|
||||||
} else {
|
} else if ((int)trap_Cvar_VariableValue("com_hunkMegs") < 256) {
|
||||||
if ((int)trap_Cvar_VariableValue("com_hunkMegs") < 256)
|
trap_Cvar_SetValue("com_hunkMegs", 256);
|
||||||
{
|
Menus_ActivateByName("memory_popmenu", qfalse);
|
||||||
trap_Cvar_SetValue("com_hunkMegs", 256);
|
} else if (UI_VidRestartPopup(qfalse)) {
|
||||||
Menus_ActivateByName("memory_popmenu", qfalse);
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case UIMENU_TEAM:
|
case UIMENU_TEAM:
|
||||||
|
@ -8697,6 +8961,12 @@ void _UI_SetActiveMenu(uiMenuCommand_t menu)
|
||||||
Menus_CloseAll();
|
Menus_CloseAll();
|
||||||
Menus_ActivateByName("ingame_presets", qfalse);
|
Menus_ActivateByName("ingame_presets", qfalse);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
case UIMENU_RQ3_POST_VID_RESTART:
|
||||||
|
//Menus_CloseAll();
|
||||||
|
//Menus_ActivateByName("post_vid_restart", qfalse);
|
||||||
|
UI_VidRestartPopup(qtrue);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9183,6 +9453,14 @@ vmCvar_t ui_RQ3_radioPreset10Script;
|
||||||
//Makro - player gender; irrelevant for now
|
//Makro - player gender; irrelevant for now
|
||||||
vmCvar_t ui_RQ3_gender;
|
vmCvar_t ui_RQ3_gender;
|
||||||
|
|
||||||
|
vmCvar_t ui_RQ3_old_r_mode;
|
||||||
|
vmCvar_t ui_RQ3_old_r_customWidth;
|
||||||
|
vmCvar_t ui_RQ3_old_r_customHeight;
|
||||||
|
vmCvar_t ui_RQ3_old_r_fullScreen;
|
||||||
|
vmCvar_t ui_RQ3_videoChanges;
|
||||||
|
vmCvar_t ui_RQ3_fullScreen;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// bk001129 - made static to avoid aliasing
|
// bk001129 - made static to avoid aliasing
|
||||||
static cvarTable_t cvarTable[] = {
|
static cvarTable_t cvarTable[] = {
|
||||||
|
@ -9378,7 +9656,14 @@ static cvarTable_t cvarTable[] = {
|
||||||
{&ui_RQ3_radioPreset10Desc, "ui_RQ3_radioPreset10Desc", "", CVAR_ARCHIVE},
|
{&ui_RQ3_radioPreset10Desc, "ui_RQ3_radioPreset10Desc", "", CVAR_ARCHIVE},
|
||||||
{&ui_RQ3_radioPreset10Script, "ui_RQ3_radioPreset10Script", "", CVAR_ARCHIVE},
|
{&ui_RQ3_radioPreset10Script, "ui_RQ3_radioPreset10Script", "", CVAR_ARCHIVE},
|
||||||
//Makro - player gender; irrelevant for now
|
//Makro - player gender; irrelevant for now
|
||||||
{&ui_RQ3_gender, "ui_RQ3_gender", "0", CVAR_ARCHIVE}
|
{&ui_RQ3_gender, "ui_RQ3_gender", "0", CVAR_ARCHIVE},
|
||||||
|
|
||||||
|
{&ui_RQ3_old_r_mode, "ui_RQ3_old_r_mode", "-2", CVAR_ROM},
|
||||||
|
{&ui_RQ3_old_r_customWidth, "ui_RQ3_old_r_customWidth", "640", CVAR_ROM},
|
||||||
|
{&ui_RQ3_old_r_customHeight, "ui_RQ3_old_r_customHeight", "480", CVAR_ROM},
|
||||||
|
{&ui_RQ3_old_r_fullScreen, "ui_RQ3_old_r_fullScreen", "1", CVAR_ROM},
|
||||||
|
{&ui_RQ3_videoChanges, "ui_RQ3_videoChanges", "0", CVAR_ROM},
|
||||||
|
{&ui_RQ3_fullScreen, "ui_RQ3_fullScreen", "1", CVAR_ROM},
|
||||||
};
|
};
|
||||||
|
|
||||||
// bk001129 - made static to avoid aliasing
|
// bk001129 - made static to avoid aliasing
|
||||||
|
|
|
@ -151,14 +151,16 @@ typedef enum {
|
||||||
UIMENU_BAD_CD_KEY,
|
UIMENU_BAD_CD_KEY,
|
||||||
UIMENU_TEAM,
|
UIMENU_TEAM,
|
||||||
UIMENU_POSTGAME,
|
UIMENU_POSTGAME,
|
||||||
//Makro - added weapon menu
|
// Makro - added weapon menu
|
||||||
UIMENU_RQ3_WEAPON,
|
UIMENU_RQ3_WEAPON,
|
||||||
//Makro - added join menu
|
// Makro - added join menu
|
||||||
UIMENU_RQ3_JOIN,
|
UIMENU_RQ3_JOIN,
|
||||||
//Makro - tkok yes/no menu
|
// Makro - tkok yes/no menu
|
||||||
UIMENU_RQ3_TKOK,
|
UIMENU_RQ3_TKOK,
|
||||||
//Makro - radio presets menu
|
// Makro - radio presets menu
|
||||||
UIMENU_RQ3_PRESETS
|
UIMENU_RQ3_PRESETS,
|
||||||
|
// Makro - post-vid_restart menu
|
||||||
|
UIMENU_RQ3_POST_VID_RESTART,
|
||||||
} uiMenuCommand_t;
|
} uiMenuCommand_t;
|
||||||
|
|
||||||
#define SORT_HOST 0
|
#define SORT_HOST 0
|
||||||
|
|
|
@ -6068,9 +6068,11 @@ void Item_OwnerDraw_Paint(itemDef_t * item)
|
||||||
if (item->text) {
|
if (item->text) {
|
||||||
float p[2];
|
float p[2];
|
||||||
|
|
||||||
p[0] = item->textRect.x;
|
|
||||||
p[1] = item->window.rect.y;
|
|
||||||
Item_Text_Paint(item);
|
Item_Text_Paint(item);
|
||||||
|
|
||||||
|
p[0] = item->textRect.x;
|
||||||
|
p[1] = item->textRect.y;
|
||||||
|
//p[1] = item->window.rect.y;
|
||||||
|
|
||||||
// +8 is an offset kludge to properly align owner draw items that have text combined with them
|
// +8 is an offset kludge to properly align owner draw items that have text combined with them
|
||||||
if (item->window.rectClient.hasVectors) {
|
if (item->window.rectClient.hasVectors) {
|
||||||
|
@ -6087,7 +6089,7 @@ void Item_OwnerDraw_Paint(itemDef_t * item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DC->ownerDrawItem(item, p[0], p[1],
|
DC->ownerDrawItem(item, p[0], p[1],
|
||||||
item->window.rect.w, item->window.rect.h, 0, item->textaligny,
|
item->window.rect.w, item->window.rect.h, 0, 0,
|
||||||
item->window.ownerDraw, item->window.ownerDrawFlags, item->alignment,
|
item->window.ownerDraw, item->window.ownerDrawFlags, item->alignment,
|
||||||
item->special, item->textscale, color, item->window.background,
|
item->special, item->textscale, color, item->window.background,
|
||||||
item->textStyle);
|
item->textStyle);
|
||||||
|
@ -6273,7 +6275,10 @@ void Item_Paint(itemDef_t * item)
|
||||||
color[1] = color[3] = 1;
|
color[1] = color[3] = 1;
|
||||||
color[0] = color[2] = 0;
|
color[0] = color[2] = 0;
|
||||||
//Makro - added shader parm
|
//Makro - added shader parm
|
||||||
DC->drawRect(r->x, r->y, r->w, r->h, 1, color, DC->whiteShader);
|
if (r->hasVectors)
|
||||||
|
DC->drawAngledRect(r->x, r->y, r->w, r->h, r->u, r->v, 1, color, RECT_FULL, DC->whiteShader);
|
||||||
|
else
|
||||||
|
DC->drawRect(r->x, r->y, r->w, r->h, 1, color, DC->whiteShader);
|
||||||
}
|
}
|
||||||
//DC->drawRect(item->window.rect.x, item->window.rect.y, item->window.rect.w, item->window.rect.h, 1, red);
|
//DC->drawRect(item->window.rect.x, item->window.rect.y, item->window.rect.w, item->window.rect.h, 1, red);
|
||||||
|
|
||||||
|
|
|
@ -503,7 +503,12 @@ typedef struct {
|
||||||
(intvec)[(pos)>>5] &= ~(1 << ((pos) & 31))\
|
(intvec)[(pos)>>5] &= ~(1 << ((pos) & 31))\
|
||||||
|
|
||||||
|
|
||||||
#define MAX_NUM_GL_EXTENSIONS 128
|
#define MAX_NUM_GL_EXTENSIONS 128
|
||||||
|
#define MAX_NUM_SUPPORTED_MODES 256
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned short width, height;
|
||||||
|
} resolution_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
qhandle_t(*registerShaderNoMip) (const char *p);
|
qhandle_t(*registerShaderNoMip) (const char *p);
|
||||||
|
@ -621,6 +626,11 @@ typedef struct {
|
||||||
// Makro - total screen extents (which can go outside 0,0-640,480 for wide screens)
|
// Makro - total screen extents (which can go outside 0,0-640,480 for wide screens)
|
||||||
float min[2];
|
float min[2];
|
||||||
float max[2];
|
float max[2];
|
||||||
|
|
||||||
|
// Makro - supported resolutions
|
||||||
|
resolution_t supportedMode[MAX_NUM_SUPPORTED_MODES];
|
||||||
|
int numSupportedModes;
|
||||||
|
int selectedMode;
|
||||||
} displayContextDef_t;
|
} displayContextDef_t;
|
||||||
|
|
||||||
const char *String_Alloc(const char *p);
|
const char *String_Alloc(const char *p);
|
||||||
|
|
Loading…
Reference in a new issue