no message

This commit is contained in:
Andrei Drexler 2006-04-14 18:02:06 +00:00
parent d1b890dddc
commit 2c009a994e
8 changed files with 710 additions and 440 deletions

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.14 2006/04/14 18:02:06 makro
// no message
//
// Revision 1.13 2005/09/07 20:24:33 makro
// Vector support for most item types
//
@ -115,6 +118,8 @@
#define FEEDER_MMHEADS 0x11
//Makro - replacements
#define FEEDER_REPLACEMENTS 0x12
//Makro - driver info
#define FEEDER_GLDRIVER_INFO 0x13
// display flags
#define CG_SHOW_BLUE_TEAM_HAS_REDFLAG 0x00000001

View file

@ -72,8 +72,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /G5 /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /FR /YX /FD /GZ /c
# ADD CPP /nologo /G5 /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /YX /FD /GZ /c
# SUBTRACT CPP /Fr
# ADD CPP /nologo /G5 /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /Fr /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"

View file

@ -3,18 +3,18 @@
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: ui - Win32 Debug TA--------------------
--------------------Configuration: ui - Win32 Release TA--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP51.tmp" with contents
Creating temporary file "C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP75.tmp" with contents
[
/nologo /G5 /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /Fp"D:\Work\rq3source\reaction\Release/ta_ui.pch" /YX /Fo"D:\Work\rq3source\reaction\Release/" /Fd"D:\Work\rq3source\reaction\Release/" /FD /GZ /c
"D:\Work\rq3source\reaction\ta_ui\ui_main.c"
/nologo /G6 /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /Fp"D:\Work\rq3source\reaction\Release/ta_ui.pch" /YX /Fo"D:\Work\rq3source\reaction\Release/" /Fd"D:\Work\rq3source\reaction\Release/" /FD /c
"D:\Work\rq3source\reaction\ta_ui\ui_shared.c"
]
Creating command line "cl.exe @C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP51.tmp"
Creating temporary file "C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP52.tmp" with contents
Creating command line "cl.exe @C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP75.tmp"
Creating temporary file "C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP76.tmp" with contents
[
/nologo /base:"0x40000000" /dll /incremental:yes /pdb:"../Debug/ui.pdb" /map:"D:\Work\rq3source\reaction\Release/uix86.map" /debug /machine:I386 /def:".\ui.def" /out:"D:\Work\rq3source\reaction\Release\uix86.dll" /implib:"D:\Work\rq3source\reaction\Release/uix86.lib" /pdbtype:sept
/nologo /base:"0x40000000" /dll /incremental:no /pdb:"D:\Work\rq3source\reaction\Release/uix86.pdb" /map:"D:\Work\rq3source\reaction\Release/uix86.map" /machine:I386 /def:".\ui.def" /out:"D:\Work\rq3source\reaction\Release\uix86.dll" /implib:"D:\Work\rq3source\reaction\Release/uix86.lib"
\Work\rq3source\reaction\Release\bg_misc.obj
\Work\rq3source\reaction\Release\q_math.obj
\Work\rq3source\reaction\Release\q_shared.obj
@ -26,11 +26,12 @@ Creating temporary file "C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP52.tmp" with conten
\Work\rq3source\reaction\Release\ui_syscalls.obj
\Work\rq3source\reaction\Release\ui_util.obj
]
Creating command line "link.exe @C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP52.tmp"
Creating command line "link.exe @C:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP76.tmp"
<h3>Output Window</h3>
Compiling...
ui_main.c
ui_shared.c
Linking...
Creating library D:\Work\rq3source\reaction\Release/uix86.lib and object D:\Work\rq3source\reaction\Release/uix86.exp

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.12 2006/04/14 18:02:06 makro
// no message
//
// Revision 1.11 2003/03/31 01:23:54 jbravo
// Fixing 2 compiler warnings
//
@ -101,7 +104,7 @@ int UI_ParseInfos(char *buf, int max, char *infos[])
count = 0;
while (1) {
INFINITE_LOOP {
token = COM_Parse(&buf);
if (!token[0]) {
break;
@ -117,7 +120,7 @@ int UI_ParseInfos(char *buf, int max, char *infos[])
}
info[0] = '\0';
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(&buf, qtrue);
if (!token[0]) {
Com_Printf("Unexpected end of info file\n");

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.28 2006/04/14 18:02:06 makro
// no message
//
// Revision 1.27 2005/09/07 20:24:33 makro
// Vector support for most item types
//
@ -273,7 +276,10 @@ extern vmCvar_t ui_RQ3_teamModel;
//Makro - maxpolys hack
extern vmCvar_t ui_maxpolys;
extern vmCvar_t ui_maxpolyverts;
//Makro - player gender; irrelevant actually
extern vmCvar_t ui_RQ3_gender;
//
// ui_qmenu.c
//
@ -466,6 +472,7 @@ extern vec4_t listbar_color;
extern vec4_t text_color_disabled;
extern vec4_t text_color_normal;
extern vec4_t text_color_highlight;
extern menuDef_t *g_anchoredMenu;
extern char *ui_medalNames[];
extern char *ui_medalPicNames[];

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.83 2006/04/14 18:02:06 makro
// no message
//
// Revision 1.82 2005/09/07 20:24:33 makro
// Vector support for most item types
//
@ -477,7 +480,7 @@ vmCvar_t ui_new;
//vmCvar_t ui_debug;
vmCvar_t ui_developer;
vmCvar_t ui_initialized;
vmCvar_t ui_teamArenaFirstRun;
vmCvar_t ui_reaction33FirstRun;
void _UI_Init(qboolean);
void _UI_Shutdown(void);
@ -551,6 +554,16 @@ qboolean UI_FileExists(const char *filename)
return qfalse;
}
//Makro - registers an asset; path is relative to the assetsPath
qhandle_t Asset_RegisterShaderNoMip(const char *path)
{
if (!path)
return 0;
if (!uiInfo.uiDC.Assets.assetsPath)
return trap_R_RegisterShaderNoMip(va("ui/assets/%s", path));
return trap_R_RegisterShaderNoMip(va("%s/%s", uiInfo.uiDC.Assets.assetsPath, path));
}
void AssetCache()
{
int n, ssg;
@ -559,7 +572,7 @@ void AssetCache()
//}
//Assets.background = trap_R_RegisterShaderNoMip( ASSET_BACKGROUND );
//Com_Printf("Menu Size: %i bytes\n", sizeof(Menus));
uiInfo.uiDC.Assets.gradientBar = trap_R_RegisterShaderNoMip(ASSET_GRADIENTBAR);
uiInfo.uiDC.Assets.gradientBar = Asset_RegisterShaderNoMip(ASSET_GRADIENTBAR);
uiInfo.uiDC.Assets.fxBasePic = trap_R_RegisterShaderNoMip(ART_FX_BASE);
uiInfo.uiDC.Assets.fxPic[0] = trap_R_RegisterShaderNoMip(ART_FX_RED);
uiInfo.uiDC.Assets.fxPic[1] = trap_R_RegisterShaderNoMip(ART_FX_YELLOW);
@ -568,20 +581,21 @@ void AssetCache()
uiInfo.uiDC.Assets.fxPic[4] = trap_R_RegisterShaderNoMip(ART_FX_BLUE);
uiInfo.uiDC.Assets.fxPic[5] = trap_R_RegisterShaderNoMip(ART_FX_CYAN);
uiInfo.uiDC.Assets.fxPic[6] = trap_R_RegisterShaderNoMip(ART_FX_WHITE);
uiInfo.uiDC.Assets.scrollBarH = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_H);
uiInfo.uiDC.Assets.scrollBarV = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_V);
uiInfo.uiDC.Assets.scrollBarArrowDown = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWDOWN);
uiInfo.uiDC.Assets.scrollBarArrowUp = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWUP);
uiInfo.uiDC.Assets.scrollBarArrowLeft = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWLEFT);
uiInfo.uiDC.Assets.scrollBarArrowRight = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWRIGHT);
uiInfo.uiDC.Assets.scrollBarThumb = trap_R_RegisterShaderNoMip(ASSET_SCROLL_THUMB);
uiInfo.uiDC.Assets.scrollBarH = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_H);
uiInfo.uiDC.Assets.scrollBarV = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_V);
uiInfo.uiDC.Assets.scrollBarArrowDown = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWDOWN);
uiInfo.uiDC.Assets.scrollBarArrowUp = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWUP);
uiInfo.uiDC.Assets.scrollBarArrowLeft = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWLEFT);
uiInfo.uiDC.Assets.scrollBarArrowRight = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWRIGHT);
uiInfo.uiDC.Assets.scrollBarThumb = Asset_RegisterShaderNoMip(ASSET_SCROLL_THUMB);
//Makro - shown when clicked
uiInfo.uiDC.Assets.scrollBarArrowDown2 = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWDOWN2);
uiInfo.uiDC.Assets.scrollBarArrowUp2 = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWUP2);
uiInfo.uiDC.Assets.scrollBarArrowLeft2 = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWLEFT2);
uiInfo.uiDC.Assets.scrollBarArrowRight2 = trap_R_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWRIGHT2);
uiInfo.uiDC.Assets.sliderBar = trap_R_RegisterShaderNoMip(ASSET_SLIDER_BAR);
uiInfo.uiDC.Assets.sliderThumb = trap_R_RegisterShaderNoMip(ASSET_SLIDER_THUMB);
uiInfo.uiDC.Assets.scrollBarArrowDown2 = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWDOWN2);
uiInfo.uiDC.Assets.scrollBarArrowUp2 = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWUP2);
uiInfo.uiDC.Assets.scrollBarArrowLeft2 = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWLEFT2);
uiInfo.uiDC.Assets.scrollBarArrowRight2 = Asset_RegisterShaderNoMip(ASSET_SCROLLBAR_ARROWRIGHT2);
uiInfo.uiDC.Assets.sliderBar0 = Asset_RegisterShaderNoMip(ASSET_SLIDER_BAR0);
uiInfo.uiDC.Assets.sliderBar1 = Asset_RegisterShaderNoMip(ASSET_SLIDER_BAR1);
uiInfo.uiDC.Assets.sliderThumb = Asset_RegisterShaderNoMip(ASSET_SLIDER_THUMB);
for (n = 0; n < NUM_CROSSHAIRS; n++) {
uiInfo.uiDC.Assets.crosshairShader[n] = trap_R_RegisterShaderNoMip(va("gfx/2d/crosshair%c", 'a' + n));
@ -594,10 +608,10 @@ void AssetCache()
//Makro - for drop shadows
for (n = 0; n < 4; n++) {
uiInfo.uiDC.Assets.dropShadowCorners[n] =
trap_R_RegisterShaderNoMip(va("ui/assets/rq3-ingame-shadow-c%i", n + 1));
Asset_RegisterShaderNoMip(va("rq3-ingame-shadow-c%i", n + 1));
}
uiInfo.uiDC.Assets.dropShadowRight = trap_R_RegisterShaderNoMip("ui/assets/rq3-ingame-shadow-right");
uiInfo.uiDC.Assets.dropShadowBottom = trap_R_RegisterShaderNoMip("ui/assets/rq3-ingame-shadow-bottom");
uiInfo.uiDC.Assets.dropShadowRight = Asset_RegisterShaderNoMip("rq3-ingame-shadow-right");
uiInfo.uiDC.Assets.dropShadowBottom = trap_R_RegisterShaderNoMip("rq3-ingame-shadow-bottom");
uiInfo.newHighScoreSound = trap_S_RegisterSound("sound/feedback/voc_newhighscore.wav", qfalse);
}
@ -1478,7 +1492,7 @@ void _UI_Refresh(int realtime)
Vector2Subtract(dif, uiInfo.uiDC.mouseDownPos, dif);
norm = sqrt(Vector2Norm2(dif));
angle = -RAD2DEG(atan2(dif[1], dif[0]));
Text_Paint(20, 20, 0.225f, colorCyan, va("(%i, %i) - (%i,%i) = (%i, %i) = %.2f = %.3f deg",
Text_Paint(20, 12, 0.225f, colorCyan, va("(%i, %i) - (%i,%i) = (%i, %i) = %.2f = %.3f deg",
uiInfo.uiDC.mouseDownPos[0], uiInfo.uiDC.mouseDownPos[1], uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory,
dif[0], dif[1], norm, angle), 0, 0, 0, ITEM_TEXTSTYLE_SHADOWED, qfalse);
if (norm)
@ -1499,9 +1513,9 @@ void _UI_Refresh(int realtime)
} else {
s = va("(%i, %i)", uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory);
}
Text_Paint(20, 20, 0.225f, colorCyan, s, 0, 0, 0, ITEM_TEXTSTYLE_SHADOWED, qfalse);
Text_Paint(20, 12, 0.225f, colorCyan, s, 0, 0, 0, ITEM_TEXTSTYLE_SHADOWED, qfalse);
}
Text_Paint(20, 40, 0.225f, colorCyan, va("%i fps", uiInfo.uiDC.smoothFPS), 0, 0, 0,
Text_Paint(20, 32, 0.225f, colorCyan, va("%i fps", uiInfo.uiDC.smoothFPS), 0, 0, 0,
ITEM_TEXTSTYLE_SHADOWED, qfalse);
}
//any left-overs?
@ -1616,7 +1630,7 @@ qboolean Asset_Parse(int handle)
return qfalse;
}
while (1) {
INFINITE_LOOP {
memset(&token, 0, sizeof(pc_token_t));
@ -1707,6 +1721,14 @@ qboolean Asset_Parse(int handle)
continue;
}
//Makro - this allows us to have more than one UI
if (Q_stricmp(token.string, "assetsPath") == 0) {
if (!PC_String_Parse(handle, &uiInfo.uiDC.Assets.assetsPath)) {
return qfalse;
}
continue;
}
//Makro - key bind status 1
if (Q_stricmp(token.string, "keyBindStatus1") == 0) {
if (!PC_String_Parse(handle, &uiInfo.keyBindStatus1)) {
@ -1793,7 +1815,8 @@ qboolean Asset_Parse(int handle)
}
return qfalse;
//Makro - unreachable
//return qfalse;
}
void Font_Report()
@ -1826,7 +1849,7 @@ void UI_ParseMenu(const char *menuFile)
return;
}
while (1) {
INFINITE_LOOP {
memset(&token, 0, sizeof(pc_token_t));
if (!trap_PC_ReadToken(handle, &token)) {
break;
@ -1871,7 +1894,7 @@ qboolean Load_Menu(int handle)
return qfalse;
}
while (1) {
INFINITE_LOOP {
if (!trap_PC_ReadToken(handle, &token))
return qfalse;
@ -1886,7 +1909,8 @@ qboolean Load_Menu(int handle)
UI_ParseMenu(token.string);
}
return qfalse;
//Makro - unreachable
//return qfalse;
}
void UI_LoadMenus(const char *menuFile, qboolean reset)
@ -1914,7 +1938,7 @@ void UI_LoadMenus(const char *menuFile, qboolean reset)
Menu_Reset();
}
while (1) {
INFINITE_LOOP {
if (!trap_PC_ReadToken(handle, &token))
break;
if (token.string[0] == 0 || token.string[0] == '}') {
@ -3578,53 +3602,54 @@ static void UI_DrawKeyBindStatus(itemDef_t *item, rectDef_t * rect, float scale,
}
}
//Makro - rewrote this function - added more info and support for vectors; moved extensions to FEEDER_GLDRIVER_INFO
#define GLINFO_STRING1 va("RENDERER: %s / %s", uiInfo.uiDC.glconfig.renderer_string, uiInfo.uiDC.glconfig.vendor_string)
#define GLINFO_STRING2 va("VERSION: %s", uiInfo.uiDC.glconfig.version_string)
#define GLINFO_STRING3 va("PIXELFORMAT: color(%d) Z(%d) stencil(%d); REFRESH: %d Hz", uiInfo.uiDC.glconfig.colorBits,\
uiInfo.uiDC.glconfig.depthBits, uiInfo.uiDC.glconfig.stencilBits, uiInfo.uiDC.glconfig.displayFrequency)
#define GLINFO_STRING4 va("TEX: %d units, %d x %d max%s%s", uiInfo.uiDC.glconfig.maxActiveTextures,\
uiInfo.uiDC.glconfig.maxTextureSize, uiInfo.uiDC.glconfig.maxTextureSize,\
(uiInfo.uiDC.glconfig.textureCompression == TC_NONE) ? "" : ", compressed", uiInfo.uiDC.glconfig.smpActive ? "; SMP: on" : "")
static void UI_DrawGLInfo(rectDef_t * rect, float scale, vec4_t color, int textStyle)
{
char *eptr;
char buff[1024];
const char *lines[64];
int y, numLines, i;
float p[2];
float u[2] = {1, 0};
float v[2] = {0, 1};
//Makro - changed from 30 to 48; changed pixelformat display from (x-bits) to (x)
Text_Paint(rect->x + 2, rect->y, scale, color, va("VENDOR: %s", uiInfo.uiDC.glconfig.vendor_string), 0, 48, 0,
textStyle, qfalse);
Text_Paint(rect->x + 2, rect->y + 15, scale, color,
va("VERSION: %s: %s", uiInfo.uiDC.glconfig.version_string, uiInfo.uiDC.glconfig.renderer_string), 0,
48, 0, textStyle, qfalse);
Text_Paint(rect->x + 2, rect->y + 30, scale, color,
va("PIXELFORMAT: color(%d) Z(%d) stencil(%d)", uiInfo.uiDC.glconfig.colorBits,
uiInfo.uiDC.glconfig.depthBits, uiInfo.uiDC.glconfig.stencilBits), 0, 48, 0, textStyle, qfalse);
Vector2Set(p, rect->x, rect->y);
// build null terminated extension strings
Q_strncpyz(buff, uiInfo.uiDC.glconfig.extensions_string, 1024);
eptr = buff;
y = rect->y + 45;
numLines = 0;
while (y < rect->y + rect->h && *eptr) {
while (*eptr && *eptr == ' ')
*eptr++ = '\0';
// track start of valid string
if (*eptr && *eptr != ' ') {
lines[numLines++] = eptr;
}
while (*eptr && *eptr != ' ')
eptr++;
//Makro - vectors?
if (rect->hasVectors)
{
Vector2Copy(rect->u, u);
Vector2Copy(rect->v, v);
}
i = 0;
while (i < numLines) {
Text_Paint(rect->x + 2, y, scale, color, lines[i++], 0, 20, 0, textStyle, qfalse);
if (i < numLines) {
Text_Paint(rect->x + rect->w / 2, y, scale, color, lines[i++], 0, 20, 0, textStyle, qfalse);
}
y += 10;
if (y > rect->y + rect->h - 11) {
break;
}
}
//Makro - rewrote this code
if (rect->hasVectors)
{
#define GLINFO_OUTPUT_STRING_ANGLED(str)\
Text_PaintAngled(p[0], p[1], u, v, scale, color, str, 0, 0, rect->w, textStyle, qfalse);\
Vector2MA(p, 64 * scale, v, p)
GLINFO_OUTPUT_STRING_ANGLED(GLINFO_STRING1);
GLINFO_OUTPUT_STRING_ANGLED(GLINFO_STRING2);
GLINFO_OUTPUT_STRING_ANGLED(GLINFO_STRING3);
GLINFO_OUTPUT_STRING_ANGLED(GLINFO_STRING4);
}
else
{
#define GLINFO_OUTPUT_STRING(str)\
Text_Paint(p[0], p[1], scale, color, str, 0, 0, rect->w, textStyle, qfalse);\
Vector2MA(p, 64 * scale, v, p)
GLINFO_OUTPUT_STRING(GLINFO_STRING1);
GLINFO_OUTPUT_STRING(GLINFO_STRING2);
GLINFO_OUTPUT_STRING(GLINFO_STRING3);
GLINFO_OUTPUT_STRING(GLINFO_STRING4);
}
}
//Makro - startup menu text
@ -5844,20 +5869,18 @@ static void UI_RunMenuScript(char **args)
trap_Cvar_Set("ui_singlePlayerActive", "0");
//Makro - see if we have to restore the music volume
if (uiInfo.savedMusicVol) {
trap_Cmd_ExecuteText(EXEC_APPEND,
va("set s_musicvolume %f ; wait\n", uiInfo.oldMusicVol));
trap_Cmd_ExecuteText(EXEC_APPEND, va("set s_musicvolume %f ; wait\n", uiInfo.oldMusicVol));
}
//trap_Cmd_ExecuteText( EXEC_NOW, "quit");
//Makro - maybe a wait command will make the music volume get saved before exiting
trap_Cmd_ExecuteText(EXEC_APPEND, "wait ; quit\n");
//Makro - saved config file before exiting
trap_Cmd_ExecuteText(EXEC_APPEND, "writeconfig q3config.cfg ; quit\n");
//Makro - weapon menu after joining a team
} else if (Q_stricmp(name, "weapAfterJoin") == 0)
} else if (Q_stricmp(name, "weapAfterJoin") == 0) {
//only in teamplay
if (UI_RQ3_WeaponMenuAccess())
{
//only in teamplay
if (UI_RQ3_WeaponMenuAccess())
{
if (ui_RQ3_weapAfterJoin.integer) {
_UI_SetActiveMenu(UIMENU_RQ3_WEAPON);
if (ui_RQ3_weapAfterJoin.integer) {
_UI_SetActiveMenu(UIMENU_RQ3_WEAPON);
}
}
} else if (Q_stricmp(name, "Controls") == 0) {
@ -6882,6 +6905,9 @@ static int UI_FeederCount(float feederID)
//Makro - model replacements
} else if (feederID == FEEDER_REPLACEMENTS) {
return uiInfo.replacements.Count;
//Makro - gl driver extensions
} else if (feederID == FEEDER_GLDRIVER_INFO) {
return uiInfo.uiDC.numGlExtensions;
}
return 0;
}
@ -7094,6 +7120,9 @@ static const char *UI_FeederItemText(float feederID, int index, int column, qhan
return uiInfo.ingameServerInfo[index][column];
}
}
} else if (feederID == FEEDER_GLDRIVER_INFO) {
if (index >= 0 && index < uiInfo.uiDC.numGlExtensions)
return uiInfo.uiDC.glExtensions[index];
/*
//Makro - model replacements
} else if (feederID == FEEDER_REPLACEMENTS) {
@ -7259,7 +7288,7 @@ static qboolean Team_Parse(char **p)
return qfalse;
}
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(p, qtrue);
@ -7308,7 +7337,8 @@ static qboolean Team_Parse(char **p)
}
}
return qfalse;
//Makro - unreachable
//return qfalse;
}
static qboolean Character_Parse(char **p)
@ -7322,7 +7352,7 @@ static qboolean Character_Parse(char **p)
return qfalse;
}
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(p, qtrue);
if (Q_stricmp(token, "}") == 0) {
@ -7369,7 +7399,8 @@ static qboolean Character_Parse(char **p)
}
}
return qfalse;
//Makro - unreachable
//return qfalse;
}
static qboolean Alias_Parse(char **p)
@ -7382,7 +7413,7 @@ static qboolean Alias_Parse(char **p)
return qfalse;
}
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(p, qtrue);
if (Q_stricmp(token, "}") == 0) {
@ -7416,7 +7447,8 @@ static qboolean Alias_Parse(char **p)
}
}
return qfalse;
//Makro - unreachable
//return qfalse;
}
// mode
@ -7438,7 +7470,7 @@ static void UI_ParseTeamInfo(const char *teamFile)
p = buff;
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(&p, qtrue);
if (!token || token[0] == 0 || token[0] == '}') {
break;
@ -7494,7 +7526,7 @@ joingametypes {
uiInfo.numGameTypes = 0;
}
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(p, qtrue);
if (Q_stricmp(token, "}") == 0) {
@ -7542,7 +7574,8 @@ joingametypes {
}
}
}
return qfalse;
//Makro - unreachable
//return qfalse;
}
static qboolean MapList_Parse(char **p)
@ -7557,7 +7590,7 @@ static qboolean MapList_Parse(char **p)
uiInfo.mapCount = 0;
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(p, qtrue);
if (Q_stricmp(token, "}") == 0) {
@ -7581,7 +7614,7 @@ static qboolean MapList_Parse(char **p)
uiInfo.mapList[uiInfo.mapCount].typeBits = 0;
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(p, qtrue);
if (token[0] >= '0' && token[0] <= '9') {
uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << (token[0] - 0x030));
@ -7611,7 +7644,8 @@ static qboolean MapList_Parse(char **p)
}
}
}
return qfalse;
//Makro - unreachable
//return qfalse;
}
static void UI_ParseGameInfo(const char *teamFile)
@ -7629,7 +7663,7 @@ static void UI_ParseGameInfo(const char *teamFile)
p = buff;
while (1) {
INFINITE_LOOP {
token = COM_ParseExt(&p, qtrue);
if (!token || token[0] == 0 || token[0] == '}') {
break;
@ -7879,6 +7913,34 @@ void UI_DrawPolyStretchPic(float x, float y, float w, float h, float s1, float t
trap_R_DrawStretchPic(x, y, w, h, s1, t1, s2, t2, hShader);
}
static void UI_MakeExtensionsList()
{
char *eptr;
uiInfo.uiDC.numGlExtensions = 0;
// build null terminated extension strings
eptr = uiInfo.uiDC.glconfig.extensions_string;
while (*eptr && uiInfo.uiDC.numGlExtensions < MAX_NUM_GL_EXTENSIONS)
{
// skip whitespace
while (*eptr && *eptr == ' ')
*eptr++ = '\0';
// track start of valid string
if (*eptr && *eptr != ' ')
uiInfo.uiDC.glExtensions[uiInfo.uiDC.numGlExtensions++] = eptr;
while (*eptr && *eptr != ' ')
eptr++;
// end token
if (*eptr)
*eptr++ = '\0';
}
}
/*
=================
@ -7892,6 +7954,7 @@ void _UI_Init(qboolean inGameLoad)
char info[MAX_INFO_STRING];
//
int start;
qboolean needRestart = qfalse;
//uiInfo.inGameLoad = inGameLoad;
@ -7902,10 +7965,23 @@ void _UI_Init(qboolean inGameLoad)
// cache redundant calulations
trap_GetGlconfig(&uiInfo.uiDC.glconfig);
UI_MakeExtensionsList();
//Makro - 8192 polys should be enough for the new UI...
if (ui_maxpolys.integer < 8192)
{
trap_Cvar_SetValue("r_maxpolys", 8192);
needRestart = qtrue;
}
//Makro - 32768 poly verts should be enough for the new UI...
if (ui_maxpolyverts.integer < 32768)
{
trap_Cvar_SetValue("r_maxpolyverts", 32768);
needRestart = qtrue;
}
if (needRestart)
{
trap_Cmd_ExecuteText(EXEC_INSERT, "vid_restart");
}
@ -8082,10 +8158,10 @@ void _UI_Init(qboolean inGameLoad)
uiInfo.serverStatus.currentServerCinematic = -1;
uiInfo.previewMovie = -1;
if (trap_Cvar_VariableValue("ui_TeamArenaFirstRun") == 0) {
if (trap_Cvar_VariableValue("ui_reaction33FirstRun") == 0) {
trap_Cvar_Set("s_volume", "0.8");
trap_Cvar_Set("s_musicvolume", "0.5");
trap_Cvar_Set("ui_TeamArenaFirstRun", "1");
trap_Cvar_Set("ui_reaction33FirstRun", "1");
}
trap_Cvar_Register(NULL, "debug_protocol", "", 0);
@ -8175,7 +8251,7 @@ void _UI_MouseEvent(int dx, int dy)
if (Menu_Count() > 0) {
//menuDef_t *menu = Menu_GetFocused();
//Menu_HandleMouseMove(menu, uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory);
Display_MouseMove(NULL, uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory);
Display_MouseMove(g_anchoredMenu, uiInfo.uiDC.cursorx, uiInfo.uiDC.cursory);
}
//Makro - update the time
@ -8366,7 +8442,7 @@ void Text_PaintCenter_AutoWrapped(float x, float y, float xmax, float ystep, flo
Q_strncpyz(buf, str, sizeof(buf));
s1 = s2 = s3 = buf;
while (1) {
INFINITE_LOOP {
do {
s3++;
} while (*s3 != ' ' && *s3 != '\0');
@ -8736,6 +8812,7 @@ vmCvar_t ui_RQ3_joinPort;
vmCvar_t ui_RQ3_demoName;
//Makro - maxpolys hack
vmCvar_t ui_maxpolys;
vmCvar_t ui_maxpolyverts;
//Makro - matchmode settings
vmCvar_t ui_RQ3_timelimit;
vmCvar_t ui_RQ3_roundlimit;
@ -8785,6 +8862,8 @@ vmCvar_t ui_RQ3_radioPreset9Script;
vmCvar_t ui_RQ3_radioPreset10Desc;
vmCvar_t ui_RQ3_radioPreset10Script;
//Makro - player gender; irrelevant for now
vmCvar_t ui_RQ3_gender;
// bk001129 - made static to avoid aliasing
@ -8907,7 +8986,7 @@ static cvarTable_t cvarTable[] = {
{&ui_Q3Model, "ui_q3model", "1", CVAR_ARCHIVE | CVAR_ROM},
{&ui_hudFiles, "cg_hudFiles", "ui/hud.txt", CVAR_ARCHIVE},
{&ui_recordSPDemo, "ui_recordSPDemo", "0", CVAR_ARCHIVE},
{&ui_teamArenaFirstRun, "ui_teamArenaFirstRun", "0", CVAR_ARCHIVE},
{&ui_reaction33FirstRun, "ui_reaction33FirstRun", "0", CVAR_ARCHIVE | CVAR_ROM},
{&ui_realWarmUp, "g_warmup", "20", CVAR_ARCHIVE},
{&ui_realCaptureLimit, "capturelimit", "8", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART},
{&ui_serverStatusTimeOut, "ui_serverStatusTimeOut", "7000", CVAR_ARCHIVE},
@ -8931,6 +9010,7 @@ static cvarTable_t cvarTable[] = {
{&ui_RQ3_demoName, "ui_RQ3_demoName", "", 0},
//Makro - maxpolys hack
{&ui_maxpolys, "r_maxpolys", "4096", CVAR_ARCHIVE},
{&ui_maxpolyverts, "r_maxpolyverts", "16384", CVAR_ARCHIVE},
//Makro - matchmode settings
{&ui_RQ3_timelimit, "ui_RQ3_timelimit", "0", 0},
{&ui_RQ3_roundlimit, "ui_RQ3_roundlimit", "0", 0},
@ -8978,7 +9058,9 @@ static cvarTable_t cvarTable[] = {
{&ui_RQ3_radioPreset9Script, "ui_RQ3_radioPreset9Script", "say_team Right; radio right", CVAR_ARCHIVE},
//10
{&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
{&ui_RQ3_gender, "ui_RQ3_gender", "0", CVAR_ARCHIVE}
};
// bk001129 - made static to avoid aliasing

File diff suppressed because it is too large Load diff

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.22 2006/04/14 18:02:06 makro
// no message
//
// Revision 1.21 2005/09/07 20:24:33 makro
// Vector support for most item types
//
@ -116,7 +119,10 @@
#define WINDOW_RENDERPOINT 0x01000000
//Makro - forced text color
#define WINDOW_FORCE_TEXT_COLOR 0x02000000
//Makro - randomizes texture co-ordinates (useful for simulating screen static)
#define WINDOW_RANDOM_TCGEN 0x04000000
//Makro - parent is moved around when this item is clicked
#define WINDOW_MENU_ANCHOR 0x08000000
// CGAME cursor type bits
#define CURSOR_NONE 0x00000001
@ -142,22 +148,24 @@
#define ART_FX_WHITE "menu/art/fx_white"
#define ART_FX_YELLOW "menu/art/fx_yel"
#define ASSET_GRADIENTBAR "ui/assets/gradientbar2.tga"
#define ASSET_SCROLLBAR_V "ui/assets/scrollbar_vert.tga"
//Makro - removed "ui/assets" from these defines
#define ASSET_GRADIENTBAR "gradientbar2.tga"
#define ASSET_SCROLLBAR_V "scrollbar_vert.tga"
//Makro - horizontal scrollbar
#define ASSET_SCROLLBAR_H "ui/assets/scrollbar_horz.tga"
#define ASSET_SCROLLBAR_ARROWDOWN "ui/assets/scrollbar_arrow_dwn_a.tga"
#define ASSET_SCROLLBAR_ARROWUP "ui/assets/scrollbar_arrow_up_a.tga"
#define ASSET_SCROLLBAR_ARROWLEFT "ui/assets/scrollbar_arrow_left_a.tga"
#define ASSET_SCROLLBAR_ARROWRIGHT "ui/assets/scrollbar_arrow_right_a.tga"
#define ASSET_SCROLLBAR_H "scrollbar_horz.tga"
#define ASSET_SCROLLBAR_ARROWDOWN "scrollbar_arrow_dwn_a.tga"
#define ASSET_SCROLLBAR_ARROWUP "scrollbar_arrow_up_a.tga"
#define ASSET_SCROLLBAR_ARROWLEFT "scrollbar_arrow_left_a.tga"
#define ASSET_SCROLLBAR_ARROWRIGHT "scrollbar_arrow_right_a.tga"
//Makro - displayed when clicked
#define ASSET_SCROLLBAR_ARROWDOWN2 "ui/assets/scrollbar_arrow_dwn_b.tga"
#define ASSET_SCROLLBAR_ARROWUP2 "ui/assets/scrollbar_arrow_up_b.tga"
#define ASSET_SCROLLBAR_ARROWLEFT2 "ui/assets/scrollbar_arrow_left_b.tga"
#define ASSET_SCROLLBAR_ARROWRIGHT2 "ui/assets/scrollbar_arrow_right_b.tga"
#define ASSET_SCROLL_THUMB "ui/assets/scrollbar_thumb.tga"
#define ASSET_SLIDER_BAR "ui/assets/slider2.tga"
#define ASSET_SLIDER_THUMB "ui/assets/sliderbutt_1.tga"
#define ASSET_SCROLLBAR_ARROWDOWN2 "scrollbar_arrow_dwn_b.tga"
#define ASSET_SCROLLBAR_ARROWUP2 "scrollbar_arrow_up_b.tga"
#define ASSET_SCROLLBAR_ARROWLEFT2 "scrollbar_arrow_left_b.tga"
#define ASSET_SCROLLBAR_ARROWRIGHT2 "scrollbar_arrow_right_b.tga"
#define ASSET_SCROLL_THUMB "scrollbar_thumb.tga"
#define ASSET_SLIDER_BAR0 "slider2_0.tga"
#define ASSET_SLIDER_BAR1 "slider2_1.tga"
#define ASSET_SLIDER_THUMB "sliderbutt_1.tga"
#define SCROLLBAR_SIZE 16.0
#define SLIDER_WIDTH 96.0
#define SLIDER_HEIGHT 16.0
@ -425,6 +433,8 @@ typedef struct {
const char *fontStr;
const char *cursorStr;
const char *gradientStr;
//Makro - this allows us to have more than one UI dir
const char *assetsPath;
fontInfo_t textFont;
fontInfo_t smallFont;
fontInfo_t bigFont;
@ -446,7 +456,7 @@ typedef struct {
qhandle_t buttonMiddle;
qhandle_t buttonInside;
qhandle_t solidBox;
qhandle_t sliderBar;
qhandle_t sliderBar0, sliderBar1;
qhandle_t sliderThumb;
sfxHandle_t menuEnterSound;
sfxHandle_t menuExitSound;
@ -489,6 +499,8 @@ typedef struct {
(intvec)[(pos)>>5] &= ~(1 << ((pos) & 31))\
#define MAX_NUM_GL_EXTENSIONS 128
typedef struct {
qhandle_t(*registerShaderNoMip) (const char *p);
void (*setColor) (const vec4_t v);
@ -597,6 +609,10 @@ typedef struct {
int overlayFadeStart, overlayFadeEnd;
//Makro - keep track of key presses
int keysStatus[1024/(8*sizeof(int))];
//Makro - gl extensions
const char *glExtensions[MAX_NUM_GL_EXTENSIONS];
int numGlExtensions;
} displayContextDef_t;
const char *String_Alloc(const char *p);