]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'terencehill/help_messages_cleanup' into 'master'
authorMario <mario.mario@y7mail.com>
Sat, 27 Feb 2021 11:05:55 +0000 (11:05 +0000)
committerMario <mario.mario@y7mail.com>
Sat, 27 Feb 2021 11:05:55 +0000 (11:05 +0000)
Help messages cleanup

See merge request xonotic/xonotic-data.pk3dir!875

21 files changed:
.tx/merge-base
common.de.po
common.de_CH.po
common.fr.po
common.he.po
languages.txt
mutators.cfg
qcsrc/common/gamemodes/gamemode/assault/sv_assault.qc
qcsrc/common/gamemodes/gamemode/cts/sv_cts.qc
qcsrc/common/gamemodes/gamemode/race/sv_race.qc
qcsrc/common/mapobjects/func/breakable.qc
qcsrc/common/mapobjects/func/breakable.qh
qcsrc/common/playerstats.qc
qcsrc/menu/xonotic/dialog_multiplayer_profile.qc
qcsrc/server/cheats.qc
qcsrc/server/client.qc
qcsrc/server/command/cmd.qc
qcsrc/server/teamplay.qc
qcsrc/server/teamplay.qh
qcsrc/server/world.qc
xonotic-client.cfg

index 15ebc5061f6a12174f1072399a95408cf9aa3567..4dc3db19af527ca71d032e4bceb861724f8467a7 100644 (file)
@@ -1 +1 @@
-Wed Feb  3 07:23:37 CET 2021
+Sat Feb 27 07:23:43 CET 2021
index 80d4f97520624cb79c854ea678ced80e4d23e9e0..2efa5eeadcaf1634482c98db4a55e7026b62ce23 100644 (file)
@@ -28,8 +28,8 @@ msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-01-31 07:23+0100\n"
-"PO-Revision-Date: 2021-01-31 06:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2021-02-25 13:50+0000\n"
+"Last-Translator: Mirio <opivy@hotmail.de>\n"
 "Language-Team: German (http://www.transifex.com/team-xonotic/xonotic/"
 "language/de/)\n"
 "Language: de\n"
@@ -992,7 +992,7 @@ msgstr "Genauigkeitsstatistik (Durchschnitt: %d%%)"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1371
 msgid "Item stats"
-msgstr ""
+msgstr "Gegenstands-Statistik"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1482
 msgid "Map stats:"
index f603a92742c320cc002d20e9ba9f2d3ae984c8a1..566bd6816c619ef10d87f4c3706972037a4a5ddf 100644 (file)
@@ -28,8 +28,8 @@ msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-01-31 07:23+0100\n"
-"PO-Revision-Date: 2021-01-31 06:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2021-02-25 13:50+0000\n"
+"Last-Translator: Mirio <opivy@hotmail.de>\n"
 "Language-Team: German (http://www.transifex.com/team-xonotic/xonotic/"
 "language/de/)\n"
 "Language: de\n"
@@ -992,7 +992,7 @@ msgstr "Genauigkeitsstatistik (Durchschnitt: %d%%)"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1371
 msgid "Item stats"
-msgstr ""
+msgstr "Gegenstands-Statistik"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1482
 msgid "Map stats:"
index 4f26067d766d7a99930a6ddcffdc67959dd03c00..95ae82c48b5cfd82e4a3cdcaa61063f9216397bb 100644 (file)
 # RedGuff <domsau2@yahoo.fr>, 2014
 # Yannick Le Guen <leguen.yannick@gmail.com>, 2013
 # Hugo Locurcio, 2013
-# Yannick Le Guen <leguen.yannick@gmail.com>, 2013-2020
+# Yannick Le Guen <leguen.yannick@gmail.com>, 2013-2021
 msgid ""
 msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-01-31 07:23+0100\n"
-"PO-Revision-Date: 2021-01-31 06:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2021-02-26 22:43+0000\n"
+"Last-Translator: Yannick Le Guen <leguen.yannick@gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/team-xonotic/xonotic/"
 "language/fr/)\n"
 "Language: fr\n"
@@ -986,7 +986,7 @@ msgstr "Stats de précision (moyenne %d%%)"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1371
 msgid "Item stats"
-msgstr ""
+msgstr "Stats objet"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:1482
 msgid "Map stats:"
index cd9eb1b949e16c17ae0fd45b20289cb9e93d88d3..8b76e3a44db598345ab33f0fb315d833195696d6 100644 (file)
@@ -5,8 +5,8 @@
 # Translators:
 # nad le <nadavlevi726@gmail.com>, 2018
 # Omer I.S., 2020
-# Omeritzics Games <omeritzicschwartz@gmail.com>, 2020
-# Omeritzics Games <omeritzicschwartz@gmail.com>, 2020
+# Omer I.S. <omeritzicschwartz@gmail.com>, 2020
+# Omer I.S. <omeritzicschwartz@gmail.com>, 2020
 # Roi Asher Gerszkoviez <gerszkoviez@gmail.com>, 2020
 # Tal Leibman <leibman2@gmail.com>, 2019
 msgid ""
index a1ab9130cd6eeb07e1bf2e4f1a048764d6a6af73..6d1b657c300f6460b07c4273c2b6ba0a94909254 100644 (file)
@@ -1,10 +1,10 @@
 ast   "Asturian" "Asturianu" 75%
-de    "German" "Deutsch" 99%
-de_CH "German (Switzerland)" "Deutsch (Schweiz)" 99%
+de    "German" "Deutsch" 100%
+de_CH "German (Switzerland)" "Deutsch (Schweiz)" 100%
 en    "English" "English" 100%
 en_AU "English (Australia)" "English (Australia)" 74%
 es    "Spanish" "Español" 99%
-fr    "French" "Français" 99%
+fr    "French" "Français" 100%
 ga    "Irish" "Irish" 31%
 it    "Italian" "Italiano" 100%
 hu    "Hungarian" "Magyar" 46%
index 81f3ca4f587bb82905c202895f44df95a398e61f..5420c350f23503b60e12f99ffa0282cd0749c76f 100644 (file)
@@ -24,7 +24,7 @@ set sv_dodging_ramp_time 0.1 "a ramp so that the horizontal part of the dodge is
 set sv_dodging_height_threshold 10 "the maximum height above ground where to allow dodging"
 set sv_dodging_wall_distance_threshold 10 "the maximum distance from a wall that still allows dodging"
 set sv_dodging_sound 1 "if 1 dodging makes a sound. if 0 dodging is silent"
-set sv_dodging_frozen 0 "allow dodging while frozen"
+set sv_dodging_frozen 0 "allow dodging while frozen (requires g_dodging to be enabled)"
 set sv_dodging_frozen_doubletap 0
 set sv_dodging_maxspeed 450 "maximum speed a player can be moving at to use the standard dodging from an (almost) standstill"
 set sv_dodging_air_maxspeed 450 "maximum speed a player can be moving at before they dodge again when air dodging is enabled"
index 48d56d1f90a4b38b15ea8f02d1b8775c6b45e326..1492c6d06c6278147428dc2d79743be62e32b9ab 100644 (file)
@@ -366,7 +366,7 @@ spawnfunc(func_assault_destructible)
        else
                this.team = NUM_TEAM_1;
 
-       spawnfunc_func_breakable(this);
+       func_breakable_setup(this);
 }
 
 spawnfunc(func_assault_wall)
index 144788917415c2557d8fd5f5da7a81e3d803fb7b..bca0d1077dd31590472242102fd478b394265c06 100644 (file)
@@ -302,7 +302,7 @@ MUTATOR_HOOKFUNCTION(cts, GetPressedKeys)
                        speedaward_uid = player.crypto_idfp;
                        speedaward_lastupdate = time;
                }
-               if (speedaward_speed > speedaward_lastsent && time - speedaward_lastupdate > 1)
+               if (speedaward_speed > speedaward_lastsent && (time - speedaward_lastupdate > 1 || intermission_running))
                {
                        string rr = CTS_RECORD;
                        race_send_speedaward(MSG_ALL);
index a69a435227785f7172f65558155049abaddbbc4e..8148dda2d39f6964a503a3bc8229a8d317673fc6 100644 (file)
@@ -348,7 +348,7 @@ MUTATOR_HOOKFUNCTION(rc, GetPressedKeys)
                        speedaward_uid = player.crypto_idfp;
                        speedaward_lastupdate = time;
                }
-               if (speedaward_speed > speedaward_lastsent && time - speedaward_lastupdate > 1)
+               if (speedaward_speed > speedaward_lastsent && (time - speedaward_lastupdate > 1 || intermission_running))
                {
                        string rr = RACE_RECORD;
                        race_send_speedaward(MSG_ALL);
index bf482b73a2f9dc27fd9aea6c61a4620b49b74e99..ea71499fdb6b634bcbe2b9d381cc2a3a9534b238 100644 (file)
@@ -311,8 +311,7 @@ void func_breakable_reset(entity this)
                func_breakable_behave_restore(this);
 }
 
-// destructible walls that can be used to trigger target_objective_decrease
-spawnfunc(func_breakable)
+void func_breakable_setup(entity this)
 {
        float n, i;
        if(!GetResource(this, RES_HEALTH))
@@ -382,7 +381,8 @@ spawnfunc(func_breakable)
 }
 
 // for use in maps with a "model" key set
-spawnfunc(misc_breakablemodel) {
-       spawnfunc_func_breakable(this);
-}
+spawnfunc(misc_breakablemodel) { func_breakable_setup(this); }
+
+// destructible walls that can be used to trigger target_objective_decrease
+spawnfunc(func_breakable) { func_breakable_setup(this); }
 #endif
index 0efbcfaed5eb809c544d2f245d02467096b56ba7..19460333029600fa753ec45e0ee671308c0b559a 100644 (file)
@@ -8,5 +8,5 @@ const int STATE_ALIVE = 0;
 const int STATE_BROKEN = 1;
 
 #ifdef SVQC
-spawnfunc(func_breakable);
+void func_breakable_setup(entity this);
 #endif
index d90f771617e2c0f8dc34f1d9519c07b825714747..c11efed8b78af9868d79c635bc0761fe483e7c62 100644 (file)
@@ -543,7 +543,6 @@ void PlayerStats_PlayerBasic_Handler(entity fh, entity p, float status)
                        #endif
                        url_fputs(fh, sprintf("l %s\n", cvar_string("_menu_prvm_language"))); // language
                        url_fputs(fh, sprintf("c %s\n", cvar_string("_menu_prvm_country"))); // country
-                       url_fputs(fh, sprintf("g %s\n", cvar_string("_cl_gender"))); // gender
                        url_fputs(fh, sprintf("n %s\n", cvar_string("_cl_name"))); // name
                        url_fputs(fh, sprintf("m %s %s\n", cvar_string("_cl_playermodel"), cvar_string("_cl_playerskin"))); // model/skin
                        */url_fputs(fh, "\n");
@@ -738,7 +737,6 @@ void PlayerStats_PlayerDetail_Handler(entity fh, entity unused, float status)
                        #endif
                        url_fputs(fh, sprintf("l %s\n", cvar_string("_menu_prvm_language"))); // language
                        //url_fputs(fh, sprintf("c %s\n", cvar_string("_cl_country"))); // country
-                       //url_fputs(fh, sprintf("g %s\n", cvar_string("_cl_gender"))); // gender
                        url_fputs(fh, sprintf("n %s\n", cvar_string("_cl_name"))); // name
                        url_fputs(fh, sprintf("m %s %s\n", cvar_string("_cl_playermodel"), cvar_string("_cl_playerskin"))); // model/skin
                        url_fputs(fh, "\n");
@@ -944,7 +942,6 @@ void PlayerInfo_ready(entity fh, entity p, float status)
 #ifdef MENUQC
                         url_fputs(fh, sprintf("l %s\n", cvar_string("_menu_prvm_language"))); // language
                         url_fputs(fh, sprintf("c %s\n", cvar_string("_menu_prvm_country"))); // country
-                        url_fputs(fh, sprintf("g %s\n", cvar_string("_cl_gender"))); // gender
                         url_fputs(fh, sprintf("n %s\n", cvar_string("_cl_name"))); // name
                         url_fputs(fh, sprintf("m %s %s\n", cvar_string("_cl_playermodel"), cvar_string("_cl_playerskin"))); // model/skin
 #endif
index e6d9e3492903f6beefcca98d4740676858bb7762..ad3a3cbb5dfb0cca21cf0cec582823bb8a28aff6 100644 (file)
@@ -149,7 +149,7 @@ void XonoticProfileTab_fill(entity me)
        me.gotoRC(me, 16, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM SECTION, TOP POS
        //me.gotoRC(me, 13.5, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM SECTION, TOP POS
        //me.gotoRC(me, 0.5, 3.1); me.setFirstColumn(me, me.currentColumn); // TOP SECTION, TOP POS
-               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Country")));
+               //me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Country")));
 
        me.TR(me);
                me.TDempty(me, 0.75);
@@ -161,32 +161,6 @@ void XonoticProfileTab_fill(entity me)
                me.TD(me, 4.5, 2, e = makeXonoticLanguageList()); // todo: cl_country: create proper country list
                */
 
-
-       // ================
-       //  GENDER SECTION
-       // ================
-       me.gotoRC(me, 13.5, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM SECTION, TOP POS
-       //me.gotoRC(me, 19.5, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM SECTION, BOTTOM POS
-       //me.gotoRC(me, 6.5, 3.1); me.setFirstColumn(me, me.currentColumn); // TOP SECTION, BOTTOM POS
-       #if 0
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gender:")));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("_cl_gender"));
-                       e.addValue(e, _("Undisclosed"), "0");
-                       e.addValue(e, _("Female"), "1");
-                       e.addValue(e, _("Male"), "2");
-                       e.configureXonoticTextSliderValues(e);
-       #else
-                       me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Gender")));
-               me.TR(me);
-                       #define GENDERWIDTH_OFFSET 0.25
-                       #define GENDERWIDTH_LENGTH 2.5
-                       #define GENDERWIDTH_ITEM (GENDERWIDTH_LENGTH / 3)
-                       me.TDempty(me, GENDERWIDTH_OFFSET);
-                       me.TD(me, 1, GENDERWIDTH_ITEM, e = makeXonoticRadioButton(3, "_cl_gender", "2", _("Female")));
-                       me.TD(me, 1, GENDERWIDTH_ITEM, e = makeXonoticRadioButton(3, "_cl_gender", "1", _("Male")));
-                       me.TD(me, 1, GENDERWIDTH_ITEM, e = makeXonoticRadioButton(3, "_cl_gender", "0", _("Undisclosed")));
-       #endif
-
        me.gotoRC(me, me.rows - 1, 0);
                me.TD(me, 1, me.columns, profileApplyButton);
 }
index a66726428b9eca1ffc524e2d10c443e5a66f9398..20a13f83e6cef5121b0c220a416fd8b756aab470 100644 (file)
@@ -341,7 +341,7 @@ float CheatCommand(entity this, int argc)
                                }
                                else
                                {
-                                       entity e = spawn();
+                                       entity e = new(func_breakable);
                                        e.model = strzone(argv(1));
                                        e.mdl = "rocket_explode";
                                        SetResourceExplicit(e, RES_HEALTH, 1000);
@@ -352,7 +352,7 @@ float CheatCommand(entity this, int argc)
                                                e.angles = fixedvectoangles2(trace_plane_normal, v_forward);
                                                e.angles = AnglesTransform_ApplyToAngles(e.angles, '-90 0 0'); // so unrotated models work
                                        }
-                                       spawnfunc_func_breakable(e);
+                                       func_breakable_setup(e);
                                        // now, is it valid?
                                        if(f == 0)
                                        {
index 0777297a22021deaec89a27152ae96b2de6367c9..d8154ee84bf88409cb7bcddf0b5b2b9e3f022cf4 100644 (file)
@@ -1707,6 +1707,13 @@ void SetZoomState(entity this, float newzoom)
 void GetPressedKeys(entity this)
 {
        MUTATOR_CALLHOOK(GetPressedKeys, this);
+       if (game_stopped)
+       {
+               CS(this).pressedkeys = 0;
+               STAT(PRESSED_KEYS, this) = 0;
+               return;
+       }
+
        int keys = STAT(PRESSED_KEYS, this);
        keys = BITSET(keys, KEY_FORWARD,        CS(this).movement.x > 0);
        keys = BITSET(keys, KEY_BACKWARD,       CS(this).movement.x < 0);
@@ -2761,12 +2768,12 @@ void PlayerPostThink (entity this)
                DrownPlayer(this);
                UpdateChatBubble(this);
                if (CS(this).impulse) ImpulseCommands(this);
+               GetPressedKeys(this);
                if (game_stopped)
                {
                        CSQCMODEL_AUTOUPDATE(this);
                        return;
                }
-               GetPressedKeys(this);
        }
        else if (IS_OBSERVER(this) && STAT(PRESSED_KEYS, this))
        {
index 1b2959f40d39b018d690f1afc65a888bef7bc9ed..570b8e5fc0bfcf180cb2fb61526e3b025a624182 100644 (file)
@@ -900,7 +900,15 @@ void SV_ParseClientCommand(entity this, string command)
                case "prespawn": break;                            // handled by engine in host_cmd.c
                case "sentcvar": break;                            // handled by server in this file
                case "spawn": break;                               // handled by engine in host_cmd.c
-               case "color": case "topcolor": case "bottomcolor": if(teamplay) return; else break; // handled by engine in host_cmd.c
+               case "color": case "topcolor": case "bottomcolor": // handled by engine in host_cmd.c
+                       if(!IS_CLIENT(this)) // on connection
+                       {
+                               // since gamecode doesn't have any calls earlier than this, do the connecting message here
+                               Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_CONNECTING, this.netname);
+                       }
+                       if(teamplay)
+                               return;
+                       break;
                case "c2s": Net_ClientCommand(this, command); return; // handled by net.qh
 
                default:
index 43d4d2461fbb141585102ca9735f9e071b9b6339..59fa95afacf4ca97224f9cf8bb8dab5e8e4dc575 100644 (file)
@@ -1123,18 +1123,13 @@ void SV_ChangeTeam(entity player, int new_color)
        {
                SetPlayerColors(player, new_color);
        }
-       // TODO: Should we really bother with this?
        if(!IS_CLIENT(player))
        {
-               // since this is an engine function, and gamecode doesn't have any calls earlier than this, do the connecting message here
-               Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_CONNECTING,
-                       player.netname);
                return;
        }
        if (!teamplay)
        {
                return;
        }
-       Player_SetTeamIndexChecked(player, Team_TeamToIndex((new_color & 0x0F) +
-               1));
+       Player_SetTeamIndexChecked(player, Team_TeamToIndex((new_color & 0x0F) + 1));
 }
index 1b1562976b6cea4a38906b07ca896afe86c556ce..279df06fc303a8e766fa182d6eb90f2313b81cc6 100644 (file)
@@ -321,8 +321,8 @@ int TeamBalanceTeam_GetNumberOfBots(entity team_ent);
 int TeamBalance_CompareTeamsInternal(entity team_a, entity team_index_b,
        entity player, bool use_score);
 
-/// \brief Called when the player connects or when they change their color with
-/// the "color" command.
+/// \brief Called when the player changes color with the "color" command.
+/// Note that the "color" command is always called early on player connection
 /// \param[in,out] player Player that requested a new color.
 /// \param[in] new_color Requested color.
 void SV_ChangeTeam(entity player, int new_color);
index 9734bcef54507a3f4193f57c892e8193e5f3124c..2cacbac1aad073eab420b2ce9ed10fbeecf4be87 100644 (file)
@@ -171,6 +171,7 @@ void cvar_changes_init()
 #define BADPREFIX(p) if(substring(k, 0, strlen(p)) == p) continue
 #define BADPRESUFFIX(p,s) if(substring(k, 0, strlen(p)) == p && substring(k, -strlen(s), -1) == s) continue
 #define BADCVAR(p) if(k == p) continue
+#define BADVALUE(p, val) if (k == p && v == val) continue
 
                // general excludes and namespaces for server admin used cvars
                BADPREFIX("help_"); // PN's server has this listed as changed, let's not rat him out for THAT
@@ -500,6 +501,8 @@ void cvar_changes_init()
                BADCVAR("sv_vote_master_commands");
                BADCVAR("sv_vote_master_password");
                BADCVAR("sv_vote_simple_majority_factor");
+               BADVALUE("sys_ticrate", "0.0166667");
+               BADVALUE("sys_ticrate", "0.0333333");
                BADCVAR("teamplay_mode");
                BADCVAR("timelimit_override");
                BADPREFIX("g_warmup_");
@@ -520,15 +523,10 @@ void cvar_changes_init()
                BADCVAR("g_lms_weaponarena");
                BADCVAR("g_ctf_stalemate_time");
 
-               if(cvar_string("g_mod_balance") == "Testing")
-               {
-                       // (temporary) while using the Testing balance, any weapon balance cvars are allowed to be changed
-                       BADPREFIX("g_balance_");
-               }
-
 #undef BADPRESUFFIX
 #undef BADPREFIX
 #undef BADCVAR
+#undef BADVALUE
 
                if(pureadding)
                {
index 1a620e7afc3a5bc88d8195d773732c8954422ddd..4ea44c0e959c00d9242ca7b99227aa4643f64d59 100644 (file)
@@ -32,7 +32,6 @@ mod_q3bsp_lightmapmergepower 4
 // player defaults
 _cl_color "112.211" // same effect as 112, but menuqc can detect this as the default and not intentionally set
 _cl_name ""
-seta _cl_gender 0 "storage cvar for current player gender (0 = undisclosed, 1 = male, 2 = female)"
 _cl_playerskin 0
 
 seta cl_reticle 1 "enable zoom reticles"