From 00520c1e1c4154e6651875956db2e0e365538ed0 Mon Sep 17 00:00:00 2001 From: div0 Date: Sun, 31 May 2009 16:36:26 +0000 Subject: [PATCH] overridable tooltips (see tooltips.db) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6827 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/defaultNexuiz.cfg | 62 ++++++++++++------------- data/qcsrc/menu/menu.qc | 11 +++++ data/qcsrc/menu/nexuiz/button.c | 1 + data/qcsrc/menu/nexuiz/checkbox.c | 3 +- data/qcsrc/menu/nexuiz/dialog.c | 9 ++++ data/qcsrc/menu/nexuiz/dialog_credits.c | 1 - data/qcsrc/menu/nexuiz/gametypebutton.c | 3 +- data/qcsrc/menu/nexuiz/inputbox.c | 3 +- data/qcsrc/menu/nexuiz/radiobutton.c | 3 +- data/qcsrc/menu/nexuiz/slider.c | 3 +- data/qcsrc/menu/nexuiz/textslider.c | 3 +- data/qcsrc/menu/nexuiz/util.qc | 27 +++++++++++ data/qcsrc/menu/nexuiz/util.qh | 4 ++ data/tooltips.db | 28 +++++++++++ 14 files changed, 117 insertions(+), 44 deletions(-) create mode 100644 data/tooltips.db diff --git a/data/defaultNexuiz.cfg b/data/defaultNexuiz.cfg index e5a04be29..b599659f9 100644 --- a/data/defaultNexuiz.cfg +++ b/data/defaultNexuiz.cfg @@ -224,9 +224,9 @@ seta vid_x11_display "" "nexuiz-linux-*.sh will use this to start nexuiz on an o cl_autodemo_nameformat demos/%Y-%m-%d_%H-%M // taunts and voices -seta cl_autotaunt 0 +seta cl_autotaunt 0 "automatically taunt enemies when fragging them" seta cl_voice_directional 1 "0 = all voices are non-directional, 1 = all voices are directional, 2 = only taunts are directional" -seta cl_voice_directional_taunt_attenuation 0.5 +seta cl_voice_directional_taunt_attenuation 0.5 "this defines the distance from which taunts can be heared" // server settings hostname "Nexuiz $g_nexuizversion Server" @@ -327,7 +327,7 @@ cl_movement_wallfriction $sv_wallfriction cl_movement_wateraccelerate $sv_wateraccelerate cl_movement_waterfriction $sv_waterfriction -seta cl_autoswitch 1 +seta cl_autoswitch 1 "automatically switch to newly picked up weapons if they are better than what you are carrying" alias autoswitch "set cl_autoswitch $1 ; cmd autoswitch $1" seta cl_playerdetailreduction 0 "the higher, the less detailed" @@ -437,7 +437,7 @@ seta g_maplist_shuffle 1 "new randomization method: like selectrandom, but avoid set g_maplist_check_waypoints 0 "when 1, maps are skipped if there currently are bots, but the map has no waypoints" set g_maxpushtime 8.0 "timeout for kill credit when your damage knocks someone into a death trap" -set g_cloaked 0 +set g_cloaked 0 "display all players mostly invisible" set g_player_alpha 1 set g_player_brightness 0 "set to 2 for brighter players" seta g_balance_cloaked_alpha 0.25 @@ -446,7 +446,7 @@ set welcome_message_time 8 alias clearmap "disconnect" -set g_grappling_hook 0 +set g_grappling_hook 0 "let players spawn with the grappling hook which allows them to pull themselves up" set g_balance_grapplehook_health 130 exec newhook.cfg @@ -492,7 +492,7 @@ seta timelimit_overtimes 0 "how many overtimes to add at max" seta timelimit_suddendeath 5 "number of minutes suddendeath mode lasts after all overtimes were added and still no winner was found" // common team values -set g_tdm 0 +set g_tdm 0 "Team Deathmatch: the team who kills their opponents most often wins" seta teamplay_default 4 "default teamplay setting in team games. 1 = no friendly fire, self damage. 2 = friendly fire and self damage enabled. 3 = no friendly fire, but self damage enabled. 4 = obey the following four cvars" seta g_mirrordamage 0.3 "for teamplay 4: mirror damage factor" @@ -510,11 +510,11 @@ set g_changeteam_banned 0 "not allowed to change team" set g_changeteam_fragtransfer 0 "% of frags you get to keep when you change teams (rounded down)" // dm -set g_dm 1 +set g_dm 1 "Deathmatch: killing any other player is one frag, player with most frags wins" set gamecfg 1 // "deathmatch" // ctf -set g_ctf 0 +set g_ctf 0 "Capture The Flag: take the enemy flag and bring it to yours at your base to score" set g_ctf_flag_returntime 30 set g_ctf_flagcarrier_selfdamage 1 set g_ctf_flagcarrier_selfforce 1 @@ -540,7 +540,7 @@ set g_ctf_captimerecord_allow_assisted 0 "if enabled, assisted CTF records (with exec ctfscoring-div0.cfg // runematch -set g_runematch 0 +set g_runematch 0 "Runematch: pick up and hold the runes, special items that give you points, a special power (rune) and a disadvantage (curse)" set g_runematch_pointrate 5 set g_runematch_fixedspawns 1 "use fixed runematch spawns if available" set g_runematch_pointamt 1 @@ -597,7 +597,7 @@ set g_balance_curse_slow_jumpheight 1.0 set g_balance_rune_speed_combo_jumpheight 1.0 // domination -set g_domination 0 +set g_domination 0 "Domination: capture and hold control points to gain points" set g_domination_default_teams 2 "default number of teams for maps that aren't domination-specific" set g_domination_disable_frags 0 "players can't get frags normally, only get points from kills" set g_domination_point_amt 0 "override: how many points to get per ping" @@ -608,7 +608,7 @@ set g_domination_point_glow 0 "domination point glow (warning, slow)" //set g_domination_balance_team_points 1 "# of points received is based on team sizes" // last man standing -set g_lms 0 +set g_lms 0 "Last Man Standing: everyone starts with a certain amount of lives, and the survivor wins" set g_lms_lives_override -1 set g_lms_start_health 250 set g_lms_start_armor 100 @@ -626,22 +626,22 @@ set g_lms_last_join 3 "if g_lms_join_anytime is false, new players can only join set g_lms_join_anytime 1 "if true, new players can join, but get same amount of lives as the worst player" // arena -set g_arena 0 +set g_arena 0 "Arena: many one-on-one rounds are played to find the winner" set g_arena_maxspawned 2 "maximum number of players to spawn at once (the rest is spectating, waiting for their turn)" set g_arena_roundbased 1 "if disabled, the next player will spawn as soon as someone dies" set g_arena_warmup 5 "time, newly spawned players have to prepare themselves in round based matches" set g_arena_powerups 0 "enables powerups (superhealth, strength and shield), which are removed by default" // onslaught -set g_onslaught 0 +set g_onslaught 0 "Onslaught: take control points towards the enemy generator and then destroy it" set g_onslaught_gen_health 5000 set g_onslaught_cp_health 1000 // assault -set g_assault 0 +set g_assault 0 "Assault: attack the enemy base as fast as you can, then defend the base against the enemy for that time to win" // race -set g_race 0 +set g_race 0 "Race: be faster than your opponents" set g_race_qualifying 2 // Qualifying uses timelimit, and the one with the best time wins. Fraglimit is nonfunctional then. // Normal race uses fraglimit as a limit for the laps. @@ -650,7 +650,7 @@ set g_race_qualifying 2 set g_race_teams 0 "when 2, 3, or 4, the race is played as a team game (the team members can add up their laps)" // nexball -set g_nexball 0 +set g_nexball 0 "Nexball: Basketball and Soccer go Nexuiz" set g_nexball_basketball_effects_default 8 "default: dim light. The original version used 1024 (fire) but it gives bad performance" set g_balance_nexball_primary_speed 1000 "launching speed" @@ -755,7 +755,7 @@ r_shadow_realtime_world_lightmaps 1 seta r_ambient 4 cl_decals_fadetime 1 cl_decals_time 2 -seta cl_nogibs 0 +seta cl_nogibs 0 "reduce number of violence effects, or remove them totally" seta cl_gibs_damageforcescale 3.5 "force to push around gibs" seta cl_gibs_lifetime 14 "average lifetime of gibs" seta cl_gibs_velocity_scale 1 "gib throw velocity force scale" @@ -793,7 +793,7 @@ sv_sound_land "" sv_sound_watersplash "" seta cl_sound_maptime_warning "1" "play announcer sound telling you the remaining maptime - 0: do not play at all, 1: play at one minute, 2: play at five minutes, 3: play both" -seta cl_hitsound 1 +seta cl_hitsound 1 "play a hit notifier sound when you have hit an enemy" // startmap_dm is used when running with the -listen or -dedicated commandline options set serverconfig server.cfg @@ -990,8 +990,8 @@ bind F3 spec // NixNex (No-Items x Nexuiz) - at each time, everyone uses the same weapon, // and in regular intervals, this weapon is cycled -set g_nixnex 0 -set g_nixnex_with_laser 0 +set g_nixnex 0 "No Items Nexuiz - instead of pickup items, everyone plays with the same weapon. After some time, a countdown will start, after which everyone will switch to another weapon, and so on" +set g_nixnex_with_laser 0 "always carry the laser as an additional weapon in NixNex" // TODO these need balancing: set g_balance_nixnex_roundtime 25 set g_balance_nixnex_incrtime 1.6 @@ -1072,9 +1072,9 @@ set g_projectiles_newton_style 2 // 3: absolute velocity + player velocity component in shot direction (note: does NOT yield the right relative velocity, but may be good enough, but it is somewhat prone to sniper rockets) // 4: just add the player velocity length to the absolute velocity (tZork's sniper rockets) -seta g_maplist_votable 6 +seta g_maplist_votable 6 "number of maps that are shown in the map voting at the end of a match" seta g_maplist_votable_keeptwotime 15 -seta g_maplist_votable_timeout 30 "note: must be below 50 seconds!" +seta g_maplist_votable_timeout 30 "timeout for the map voting; must be below 50 seconds!" seta g_maplist_votable_suggestions 2 seta g_maplist_votable_suggestions_override_mostrecent 0 seta g_maplist_votable_nodetail 1 "nodetail only shows total count instead of all vote counts per map, so votes don't influence others that much" @@ -1124,7 +1124,7 @@ alias "g_waypointsprite_clear_personal" "impulse 47" alias "g_waypointsprite_clear" "impulse 48" alias "g_waypointsprite_toggle" "impulse 49" // key for that? -seta cl_hidewaypoints 0 +seta cl_hidewaypoints 0 "disable static waypoints, only show team waypoints" // command extension alias qc_cmd "sv_cmd $*" // menu QC will override this to menu_cmd @@ -1142,7 +1142,7 @@ alias addfav "qc_cmd addtolist net_slist_favorites $*" alias addvote "qc_cmd addtolist sv_vote_commands $*" // key hunt -set g_keyhunt 0 +set g_keyhunt 0 "Key Hunt: collect all keys from the enemies and bring them together to score" set g_balance_keyhunt_delay_return 60 set g_balance_keyhunt_delay_round 5 set g_balance_keyhunt_delay_tracking 10 @@ -1247,12 +1247,12 @@ seta sbar_ballstatus_pos 123 seta sbar_ballstatus_right 0 // for menu server list (eventually make them have engine support?) -seta menu_slist_showfull 1 -seta menu_slist_showempty 1 +seta menu_slist_showfull 1 "show servers even if they are full and have no slots to join" +seta menu_slist_showempty 1 "show servers even if they are no empty and have no opponents to play against" set menu_slist_modfilter "!havoc" // for menu weapon arena -set menu_weaponarena_with_laser 0 +set menu_weaponarena_with_laser 0 "also enable the Laser in this weapon arena" // Q3A set sv_q3acompat_machineshotgunswap 0 "settemp this in mapinfo for instant Q3A map conversion" @@ -1323,7 +1323,7 @@ gl_texturecompression_q3bsplightmaps 0 gl_texturecompression_sky 1 set menu_mouse_absolute 0 "TODO make this seta if the engine understands this right" -seta menu_mouse_speed 1 +seta menu_mouse_speed 1 "speed multiplier for the mouse in the menu (does not affect in-game aiming)" set menu_use_default_hostname 1 alias sethostname "set menu_use_default_hostname 0; hostname $*" @@ -1367,7 +1367,7 @@ alias allready "sv_cmd allready" // note: these cvars use weapon NUMBERS. Use the menu to edit this cvar, or look the numbers up in qcsrc/common/constants.qh. seta cl_weaponpriority "11 9 7 4 13 8 6 15 3 5 14 2 1 12 10" "weapon priority list (edit it using the menu, numbers see constants.qh)" -seta cl_weaponpriority_useforcycling 0 +seta cl_weaponpriority_useforcycling 0 "when set, weapon cycling by the mouse wheel makes use of the weapon priority list" seta cl_weaponpriority0 "9 4 13 8 14" "use impulse 200 for prev gun from this list, 210 for best gun, 220 for next gun. Default value: explosives" seta cl_weaponpriority1 "11 7 6 5 1" "use impulse 201 for prev gun from this list, 211 for best gun, 221 for next gun. Default value: energy" seta cl_weaponpriority2 "11 7 15 3" "use impulse 202 for prev gun from this list, 212 for best gun, 222 for next gun. Default value: hitscan exact" @@ -1384,9 +1384,9 @@ seta sv_status_privacy 1 "hide IP addresses from \"status\" replies shown to cli seta cl_teamradar 1 "show radar in teammatches when available" seta cl_teamradar_background_alpha 0.4 "set to -1 to disable" seta cl_teamradar_foreground_alpha 0.8 "alpha of the map" -seta cl_teamradar_scale 4096 +seta cl_teamradar_scale 4096 "distance you can see on the team radar" seta cl_teamradar_rotation 0 "rotation mode: you set what points up. 0 = player, 1 = west, 2 = south, 3 = east, 4 = north" -seta cl_teamradar_size "128 128" +seta cl_teamradar_size "128 128" "size of the team radar in pixels" seta cl_teamradar_position "0 0" "1 0 would be upper right corner, 0.5 0.5 the center" seta cl_teamradar_zoommode 0 "zoom mode: 0 = zoomed by default, 1 = zoomed when +zoom, 2 = always zoomed, 3 = always zoomed out" alias cl_teamradar_rotate "toggle cl_teamradar_rotation 0 1 2 3 4" diff --git a/data/qcsrc/menu/menu.qc b/data/qcsrc/menu/menu.qc index 6cebc601f..b60992867 100644 --- a/data/qcsrc/menu/menu.qc +++ b/data/qcsrc/menu/menu.qc @@ -111,7 +111,11 @@ void() m_init_delayed = conwidth = conheight = -1; draw_reset(); UpdateConWidthHeight(); + + loadTooltips(); main = spawnMainWindow(); main.configureMainWindow(main); + unloadTooltips(); + main.resizeNotify(main, '0 0 0', eX * conwidth + eY * conheight, '0 0 0', eX * conwidth + eY * conheight); main.focused = 1; menuShiftState = 0; @@ -230,6 +234,11 @@ float m_testtooltipbox(vector tooltippos) return FALSE; if(tooltippos_y + menuTooltipSize_y > 1) return FALSE; + /* + menuTooltipOrigin_x = rint(tooltippos_x * cvar("vid_width")) / cvar("vid_width"); + menuTooltipOrigin_y = rint(tooltippos_y * cvar("vid_height")) / cvar("vid_height"); + menuTooltipOrigin_z = 0; + */ menuTooltipOrigin = tooltippos; return TRUE; } @@ -293,6 +302,8 @@ entity m_findtooltipitem(entity root, vector pos) if(it.focusedChild) { it = it.focusedChild; + pos = globalToBox(pos, it.Container_origin, it.Container_size); + continue; // don't show dialog tooltips when the dialog is open } else { diff --git a/data/qcsrc/menu/nexuiz/button.c b/data/qcsrc/menu/nexuiz/button.c index 7195d3cd0..1078b0e8a 100644 --- a/data/qcsrc/menu/nexuiz/button.c +++ b/data/qcsrc/menu/nexuiz/button.c @@ -36,5 +36,6 @@ void configureNexuizButtonNexuizButton(entity me, string theText, vector theColo me.colorC = theColor; me.colorF = theColor; } + me.tooltip = getZonedTooltipForIdentifier(strcat(currentDialog.classname, "/", me.text)); } #endif diff --git a/data/qcsrc/menu/nexuiz/checkbox.c b/data/qcsrc/menu/nexuiz/checkbox.c index 5ec97bff8..9234ff772 100644 --- a/data/qcsrc/menu/nexuiz/checkbox.c +++ b/data/qcsrc/menu/nexuiz/checkbox.c @@ -64,8 +64,7 @@ void configureNexuizCheckBoxNexuizCheckBox(entity me, float theYesValue, float t if(theCvar) { me.cvarName = theCvar; - if((cvar_type(theCvar) & (CVAR_TYPEFLAG_ENGINE | CVAR_TYPEFLAG_HASDESCRIPTION)) == CVAR_TYPEFLAG_HASDESCRIPTION) - me.tooltip = strzone(cvar_description(theCvar)); + me.tooltip = getZonedTooltipForIdentifier(theCvar); me.loadCvars(me); } me.configureCheckBox(me, theText, me.fontSize, me.image); diff --git a/data/qcsrc/menu/nexuiz/dialog.c b/data/qcsrc/menu/nexuiz/dialog.c index b96871148..eb3204d30 100644 --- a/data/qcsrc/menu/nexuiz/dialog.c +++ b/data/qcsrc/menu/nexuiz/dialog.c @@ -26,8 +26,17 @@ CLASS(NexuizDialog) EXTENDS(Dialog) ATTRIB(NexuizDialog, zoomedOutTitleBar, float, SKINHEIGHT_ZOOMEDTITLE != 0) ATTRIB(NexuizDialog, alpha, float, SKINALPHA_TEXT) + + METHOD(NexuizDialog, configureDialog, void(entity)) ENDCLASS(NexuizDialog) +entity currentDialog; #endif #ifdef IMPLEMENTATION +void configureDialogNexuizDialog(entity me) +{ + currentDialog = me; + configureDialogDialog(me); + me.tooltip = getZonedTooltipForIdentifier(me.classname); +} #endif diff --git a/data/qcsrc/menu/nexuiz/dialog_credits.c b/data/qcsrc/menu/nexuiz/dialog_credits.c index 1fa6d777e..c1d690fe8 100644 --- a/data/qcsrc/menu/nexuiz/dialog_credits.c +++ b/data/qcsrc/menu/nexuiz/dialog_credits.c @@ -8,7 +8,6 @@ CLASS(NexuizCreditsDialog) EXTENDS(NexuizDialog) ATTRIB(NexuizCreditsDialog, rows, float, SKINROWS_CREDITS) ATTRIB(NexuizCreditsDialog, columns, float, 2) ATTRIB(NexuizCreditsDialog, creditsList, entity, NULL) - ATTRIB(NexuizCreditsDialog, tooltip, string, "Information about who was involved in making this game.") ENDCLASS(NexuizCreditsDialog) #endif diff --git a/data/qcsrc/menu/nexuiz/gametypebutton.c b/data/qcsrc/menu/nexuiz/gametypebutton.c index faf862e56..330889289 100644 --- a/data/qcsrc/menu/nexuiz/gametypebutton.c +++ b/data/qcsrc/menu/nexuiz/gametypebutton.c @@ -35,8 +35,7 @@ void configureNexuizGametypeButtonNexuizGametypeButton(entity me, float theGroup if(theCvar) { me.cvarName = theCvar; - if((cvar_type(theCvar) & (CVAR_TYPEFLAG_ENGINE | CVAR_TYPEFLAG_HASDESCRIPTION)) == CVAR_TYPEFLAG_HASDESCRIPTION) - me.tooltip = strzone(cvar_description(theCvar)); + me.tooltip = getZonedTooltipForIdentifier(theCvar); me.loadCvars(me); } me.configureRadioButton(me, theText, me.fontSize, me.image, theGroup, 0); diff --git a/data/qcsrc/menu/nexuiz/inputbox.c b/data/qcsrc/menu/nexuiz/inputbox.c index 5fb7964d4..bc69642b4 100644 --- a/data/qcsrc/menu/nexuiz/inputbox.c +++ b/data/qcsrc/menu/nexuiz/inputbox.c @@ -39,8 +39,7 @@ void configureNexuizInputBoxNexuizInputBox(entity me, float doEditColorCodes, st if(theCvar) { me.cvarName = theCvar; - if((cvar_type(theCvar) & (CVAR_TYPEFLAG_ENGINE | CVAR_TYPEFLAG_HASDESCRIPTION)) == CVAR_TYPEFLAG_HASDESCRIPTION) - me.tooltip = strzone(cvar_description(theCvar)); + me.tooltip = getZonedTooltipForIdentifier(theCvar); me.loadCvars(me); } me.cursorPos = strlen(me.text); diff --git a/data/qcsrc/menu/nexuiz/radiobutton.c b/data/qcsrc/menu/nexuiz/radiobutton.c index 5ccf0bef7..beddaf4d2 100644 --- a/data/qcsrc/menu/nexuiz/radiobutton.c +++ b/data/qcsrc/menu/nexuiz/radiobutton.c @@ -36,8 +36,7 @@ void configureNexuizRadioButtonNexuizRadioButton(entity me, float theGroup, stri { me.cvarName = theCvar; me.cvarValue = theValue; - if((cvar_type(theCvar) & (CVAR_TYPEFLAG_ENGINE | CVAR_TYPEFLAG_HASDESCRIPTION)) == CVAR_TYPEFLAG_HASDESCRIPTION) - me.tooltip = strzone(cvar_description(theCvar)); + me.tooltip = getZonedTooltipForIdentifier(theCvar); me.loadCvars(me); } me.configureRadioButton(me, theText, me.fontSize, me.image, theGroup, 0); diff --git a/data/qcsrc/menu/nexuiz/slider.c b/data/qcsrc/menu/nexuiz/slider.c index 73819b9f9..c6b88e1d4 100644 --- a/data/qcsrc/menu/nexuiz/slider.c +++ b/data/qcsrc/menu/nexuiz/slider.c @@ -44,8 +44,7 @@ void configureNexuizSliderNexuizSlider(entity me, float theValueMin, float theVa if(theCvar) { me.cvarName = theCvar; - if((cvar_type(theCvar) & (CVAR_TYPEFLAG_ENGINE | CVAR_TYPEFLAG_HASDESCRIPTION)) == CVAR_TYPEFLAG_HASDESCRIPTION) - me.tooltip = strzone(cvar_description(theCvar)); + me.tooltip = getZonedTooltipForIdentifier(theCvar); me.loadCvars(me); } } diff --git a/data/qcsrc/menu/nexuiz/textslider.c b/data/qcsrc/menu/nexuiz/textslider.c index a98f1ebba..e225b5a75 100644 --- a/data/qcsrc/menu/nexuiz/textslider.c +++ b/data/qcsrc/menu/nexuiz/textslider.c @@ -38,8 +38,7 @@ void configureNexuizTextSliderNexuizTextSlider(entity me, string theCvar) if(theCvar) { me.cvarName = theCvar; - if((cvar_type(theCvar) & (CVAR_TYPEFLAG_ENGINE | CVAR_TYPEFLAG_HASDESCRIPTION)) == CVAR_TYPEFLAG_HASDESCRIPTION) - me.tooltip = strzone(cvar_description(theCvar)); + me.tooltip = getZonedTooltipForIdentifier(theCvar); // don't load it yet } } diff --git a/data/qcsrc/menu/nexuiz/util.qc b/data/qcsrc/menu/nexuiz/util.qc index 947823a24..a92725b86 100644 --- a/data/qcsrc/menu/nexuiz/util.qc +++ b/data/qcsrc/menu/nexuiz/util.qc @@ -1,3 +1,30 @@ +float tooltipdb; +void loadTooltips() +{ + tooltipdb = db_load("tooltips.db"); +} +void unloadTooltips() +{ + db_close(tooltipdb); + tooltipdb = -1; +} +string getZonedTooltipForIdentifier(string s) +{ + string t; + if(s == "") + return string_null; + t = db_get(tooltipdb, s); + if(t == "-") + return string_null; + if(t != "") + return strzone(t); + t = cvar_description(s); + if(t != "" && t != "custom cvar") + return strzone(t); + dprint("WARNING: no tooltip set for ", s, "\n"); + return string_null; +} + void forAllDescendants(entity root, void(entity, entity) funcPre, void(entity, entity) funcPost, entity pass) { depthfirst(root, parent, firstChild, nextSibling, funcPre, funcPost, pass); diff --git a/data/qcsrc/menu/nexuiz/util.qh b/data/qcsrc/menu/nexuiz/util.qh index f5d1f75ce..75b58896d 100644 --- a/data/qcsrc/menu/nexuiz/util.qh +++ b/data/qcsrc/menu/nexuiz/util.qh @@ -9,3 +9,7 @@ void setDependentAND(entity e, string theCvarName, float theCvarMin, float theCv void setDependentOR(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max); void setDependentAND3(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max, string theCvar3Name, float theCvar3Min, float theCvar3Max); void setDependentStringNotEqual(entity e, string theCvarName, string theCvarValue); + +void loadTooltips(); +void unloadTooltips(); +string getZonedTooltipForIdentifier(string s); diff --git a/data/tooltips.db b/data/tooltips.db new file mode 100644 index 000000000..7d2e0acd6 --- /dev/null +++ b/data/tooltips.db @@ -0,0 +1,28 @@ +0 +\NexuizSingleplayerDialog\here you can play the singleplayer campaign or instant action matches against bots +\NexuizMultiplayerDialog\here you can play online and set up your player appearance +\NexuizSettingsDialog\here you can change various game settings +\NexuizCreditsDialog\check out who was involved with this game +\NexuizQuitDialog\this dialog is just there to ask you whether you are really sure about quitting +\NexuizTeamSelectDialog\- +\NexuizAdvancedDialog\- +\NexuizMutatorsDialog\- +\NexuizMapInfoDialog\- +\NexuizUserbindEditDialog\- +\NexuizWinnerDialog\- +\NexuizWeaponsDialog\- +\NexuizRadarDialog\- +\NexuizServerInfoDialog\- +\NexuizCvarsDialog\- +\NexuizCvarsDialog\- +\crosshair_color_override\also set the color of the crosshair depending on the weapon you are currently using +\cl_teamradar_position\- +\cl_teamradar_size\- +\cl_teamradar_zoommode\- +\cl_teamradar_rotation\- +\cl_teamradar_scale\- +\cl_teamradar_size\- +\cl_teamradar_foreground_alpha\- +\cl_teamradar_background_alpha\- +\cl_hidewaypoints\- +\cl_shownames\- -- 2.39.2