X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fmenu%2Fxonotic%2Futil.qc;h=f4faea62b92a3623530aa684f63a54fb58445590;hb=a4594d94df1eb60aca616cccd45df07e561ffa01;hp=330b2bb726a0e89ccc19822ee8c8af0182b82e0e;hpb=57f83651d7e6d030987f2108aad5c1340bd3e607;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/util.qc b/qcsrc/menu/xonotic/util.qc index 330b2bb72..f4faea62b 100644 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@ -1,4 +1,11 @@ -#include "../../common/urllib.qh" +#include "util.qh" +#include "../menu.qh" +#include "../oo/base.qh" +#include "../../common/campaign_common.qh" +#include "../../common/constants.qh" +#include "../../common/mapinfo.qh" +#include "../../common/util.qh" +#include "../../common/command/generic.qh" float GL_CheckExtension(string ext) { @@ -10,39 +17,7 @@ float GL_Have_TextureCompression() return (GL_CheckExtension("GL_EXT_texture_compression_s3tc") && GL_CheckExtension("GL_ARB_texture_compression")); } -void loadTooltips() -{ - tooltipdb = db_load(language_filename("tooltips.db")); -} -void unloadTooltips() -{ - if(tooltipdb >= 0) - db_close(tooltipdb); - tooltipdb = -1; -} -string getZonedTooltipForIdentifier(string s) -{ - string t; - if(s == "") - return string_null; - if(tooltipdb >= 0) - { - t = db_get(tooltipdb, s); - if(t == "-") - return string_null; - if(t != "") - return strzone(t); - } - if(prvm_language == "en") - { - t = cvar_description(s); - if(t != "" && t != "custom cvar") - return strzone(t); - } - dprint("WARNING: no tooltip set for ", s, "\n"); - return string_null; -} - +.entity parent, firstChild, nextSibling; void forAllDescendants(entity root, void(entity, entity) funcPre, void(entity, entity) funcPost, entity pass) { depthfirst(root, parent, firstChild, nextSibling, funcPre, funcPost, pass); @@ -52,11 +27,15 @@ void forAllDescendants(entity root, void(entity, entity) funcPre, void(entity, e void SUB_Null_ee(entity e1, entity e2) { } + +.void(entity) saveCvars; void saveCvarsOf(entity ignore, entity e) { if(e.saveCvars) e.saveCvars(e); } + +.void(entity) loadCvars; void loadCvarsOf(entity ignore, entity e) { if(e.loadCvars) @@ -135,6 +114,7 @@ void makeCallback(entity e, entity cbent, void(entity, entity) cbfunc) .string cvarString_setDependent; .string cvarValue_setDependent; .float(entity) func_setDependent; +.bool disabled; void setDependent_Check(entity e) { float f; @@ -181,6 +161,7 @@ void setDependent_Draw(entity e) setDependent_Check(e); e.draw_setDependent(e); } +.void(entity) draw; void setDependent(entity e, string theCvarName, float theCvarMin, float theCvarMax) { e.draw_setDependent = e.draw; @@ -260,6 +241,32 @@ void setDependentWeird(entity e, float(entity) func) setDependent_Check(e); } +void setZonedTooltip(entity e, string theTooltip, string theCvar) +{ + if(theTooltip == "") // no tooltip, use cvar description then + { + if(theCvar != "" && prvm_language == "en") + { + string t = cvar_description(theCvar); + if(t != "" && t != "custom cvar") + theTooltip = t; + } + } + else if(theTooltip == "-") // no cvar description as tooltip + { + theTooltip = string_null; + } + + if(e.tooltip) + strunzone(e.tooltip); + e.tooltip = (theTooltip != "") ? strzone(theTooltip) : string_null; +} + +void clearTooltip(entity e) +{ + setZonedTooltip(e, string_null, string_null); +} + // URI SYSTEM //////////////////////////////////////////////////////// float _Nex_ExtResponseSystem_Queried; @@ -289,7 +296,7 @@ void URI_Get_Callback(float id, float status, string data) } else { - printf("Received HTTP request data for an invalid id %d.\n", id); + LOG_INFOF("Received HTTP request data for an invalid id %d.\n", id); } } @@ -304,22 +311,22 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data) if(_Nex_ExtResponseSystem_UpdateTo) { - dprint("error: UpdateNotification_URI_Get_Callback has been called before\n"); + LOG_TRACE("error: UpdateNotification_URI_Get_Callback has been called before\n"); return; } if(status != 0) { - dprintf("error receiving update notification: status is %d\n", status); + LOG_TRACEF("error receiving update notification: status is %d\n", status); return; } if(substring(data, 0, 1) == "<") { - dprint("error: received HTML instead of an update notification\n"); + LOG_TRACE("error: received HTML instead of an update notification\n"); return; } if(strstrofs(data, "\r", 0) != -1) { - dprint("error: received carriage returns from update notification server\n"); + LOG_TRACE("error: received carriage returns from update notification server\n"); return; } @@ -397,7 +404,7 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data) { // update needed _Nex_ExtResponseSystem_UpdateTo = strzone(un_version); - if(un_download) { printf(_("Update can be downloaded at:\n%s\n"), un_download); } + if(un_download) { LOG_INFOF(_("Update can be downloaded at:\n%s\n"), un_download); } if(un_url) { _Nex_ExtResponseSystem_UpdateToURL = strzone(un_url); } DisableServerBackwardsCompatibility(); } @@ -529,6 +536,8 @@ void postMenuDraw() draw_CenterText('0.5 0.1 0', sprintf(_("^1%s TEST BUILD"), autocvar_menu_watermark), globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1); } } +void DialogOpenButton_Click_withCoords(entity button, entity tab, vector theOrigin, vector theSize); +.entity winnerDialog; void preMenuDraw() { vector fs, sz = '0 0 0', line, mid; @@ -626,7 +635,7 @@ float updateCompression() cvar_set("gl_texturecompression", "1"); cvar_set("r_texture_dds_load", "1"); if(!can_dds) - print(_("^1ERROR: Texture compression is required but not supported.\n^1Expect visual problems.\n")); + LOG_INFO(_("^1ERROR: Texture compression is required but not supported.\n^1Expect visual problems.\n")); return 0; } else @@ -648,22 +657,22 @@ float updateCompression() // note: include only those that should be in the menu! #define GAMETYPES \ - GAMETYPE(MAPINFO_TYPE_ASSAULT) \ + GAMETYPE(MAPINFO_TYPE_DEATHMATCH) \ + GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH) \ GAMETYPE(MAPINFO_TYPE_CTF) \ GAMETYPE(MAPINFO_TYPE_CA) \ - GAMETYPE(MAPINFO_TYPE_DEATHMATCH) \ - GAMETYPE(MAPINFO_TYPE_DOMINATION) \ GAMETYPE(MAPINFO_TYPE_FREEZETAG) \ GAMETYPE(MAPINFO_TYPE_KEEPAWAY) \ GAMETYPE(MAPINFO_TYPE_KEYHUNT) \ GAMETYPE(MAPINFO_TYPE_LMS) \ + GAMETYPE(MAPINFO_TYPE_DOMINATION) \ GAMETYPE(MAPINFO_TYPE_NEXBALL) \ GAMETYPE(MAPINFO_TYPE_ONSLAUGHT) \ + GAMETYPE(MAPINFO_TYPE_ASSAULT) \ if (cvar("developer")) GAMETYPE(MAPINFO_TYPE_RACE) \ GAMETYPE(MAPINFO_TYPE_CTS) \ - GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH) \ - //GAMETYPE(MAPINFO_TYPE_INVASION) \ - /* nothing */ + /* GAMETYPE(MAPINFO_TYPE_INVASION) */ \ + /**/ int GameType_GetID(int cnt) { @@ -709,6 +718,18 @@ string GameType_GetIcon(int cnt) return ""; } +.void(entity) TR; +.void(entity, float, float, entity) TD; +.void(entity, float) TDempty; +entity makeXonoticTextLabel(float theAlign, string theText); +entity makeXonoticTextSlider(string); +.void(entity, string, string) addValue; +.void(entity) configureXonoticTextSliderValues; +entity makeXonoticColorpickerString(string theCvar, string theDefaultCvar); +entity makeXonoticCheckBoxString(string, string, string, string); +entity makeXonoticCheckBox(float, string, string); +.bool sendCvars; + void dialog_hudpanel_common_notoggle(entity me, string panelname) { float i; @@ -768,11 +789,20 @@ void dialog_hudpanel_common_notoggle(entity me, string panelname) e.configureXonoticTextSliderValues(e); } +float getFadedAlpha(float currentAlpha, float startAlpha, float targetAlpha) +{ + if(startAlpha < targetAlpha) + currentAlpha = min(currentAlpha + frametime * 0.5, targetAlpha); + else + currentAlpha = max(currentAlpha - frametime * 0.5, targetAlpha); + return currentAlpha; +} + void CheckSendCvars(entity me, string cvarnamestring) { if(me.sendCvars) { - printf("Sending cvar: %s -> %s\n", cvarnamestring, cvar_string(cvarnamestring)); + LOG_INFOF("Sending cvar: %s -> %s\n", cvarnamestring, cvar_string(cvarnamestring)); if(gamestatus & (GAME_CONNECTED | GAME_ISSERVER)) { cmd(sprintf("\nsendcvar %s\n", cvarnamestring));