]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'Mario/electro_sticky_trail_fix' into 'master'
authorterencehill <piuntn@gmail.com>
Wed, 18 Aug 2021 20:25:02 +0000 (20:25 +0000)
committerterencehill <piuntn@gmail.com>
Wed, 18 Aug 2021 20:25:02 +0000 (20:25 +0000)
Merge branch Mario/electro_sticky_trail_fix (XXS merge request)

Closes #2582

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

13 files changed:
.tx/merge-base
common.it.po
common.pt_BR.po
gamemodes-server.cfg
gfx/menu/luma/icon_mod_jeff.tga [deleted file]
gfx/menu/luminos/icon_mod_jeff.tga [deleted file]
gfx/menu/wickedx/icon_mod_jeff.tga [deleted file]
gfx/menu/xaw/icon_mod_jeff.tga [deleted file]
qcsrc/common/mutators/mutator/status_effects/status_effect/superweapons.qc
qcsrc/common/mutators/mutator/status_effects/sv_status_effects.qc
qcsrc/common/physics/movetypes/movetypes.qc
qcsrc/common/physics/movetypes/toss.qc
qcsrc/common/weapons/weapon/electro.qc

index 2f3261963cf0a5414dd7b61de0be52e83788de16..0661ec53f862a7c199ed5957d949df043f2c9459 100644 (file)
@@ -1 +1 @@
-Sat Jul 24 07:23:46 CEST 2021
+Mon Aug  9 07:23:33 CEST 2021
index 13a2d18b90de19dfec613fde5e6a8cf25dfa2df4..c7f106dd559b64c801d9e6126dc19d951fc10068 100644 (file)
@@ -7,6 +7,7 @@
 # Antonio 'terencehill' Piu <piuntn@gmail.com>, 2011-2012
 # Costa <yesbubu@hotmail.it>, 2014,2021
 # Felice Sallustio <fel.sallustio@gmail.com>, 2011
+# Jessica Amoruso <jessica.amoruso123@gmail.com>, 2021
 # Mirio <opivy@hotmail.de>, 2017
 # Antonio <piuntn@gmail.com>, 2013
 msgid ""
@@ -14,8 +15,8 @@ msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-06-27 07:23+0200\n"
-"PO-Revision-Date: 2021-06-27 05:24+0000\n"
-"Last-Translator: Antonio <piuntn@gmail.com>\n"
+"PO-Revision-Date: 2021-08-09 00:33+0000\n"
+"Last-Translator: Jessica Amoruso <jessica.amoruso123@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/team-xonotic/xonotic/"
 "language/it/)\n"
 "Language: it\n"
@@ -5733,7 +5734,7 @@ msgstr "Italiano"
 
 #: qcsrc/menu/xonotic/credits.qc:227
 msgid "Japanese"
-msgstr ""
+msgstr "Giapponese"
 
 #: qcsrc/menu/xonotic/credits.qc:230
 msgid "Kazakh"
index a605dc142821e3abee58f71a282d95bc3b11cc44..348e5e9541139ae74dbcf3ce08507d424d0f95a3 100644 (file)
@@ -9,13 +9,14 @@
 # NotThatPrivate Yes <henriqueferreira2009@gmail.com>, 2015
 # Ricardo Manuel da Cruz Coelho da Silva <ricardo.mccs@gmail.com>, 2015
 # Rui <xymarior@yandex.com>, 2018
+# zerowhy . <anymailz@tutanota.com>, 2021
 msgid ""
 msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-06-27 07:23+0200\n"
-"PO-Revision-Date: 2021-07-20 03:10+0000\n"
-"Last-Translator: Jean Trindade Pereira <jean_trindade2@hotmail.com>\n"
+"PO-Revision-Date: 2021-08-01 04:05+0000\n"
+"Last-Translator: zerowhy . <anymailz@tutanota.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/team-xonotic/"
 "xonotic/language/pt_BR/)\n"
 "Language: pt_BR\n"
@@ -1833,7 +1834,7 @@ msgstr "Incapacidade"
 
 #: qcsrc/common/mutators/mutator/buffs/all.inc:83
 msgid "Disabled"
-msgstr ""
+msgstr "Desabilitado"
 
 #: qcsrc/common/mutators/mutator/buffs/all.inc:94
 msgid "Vengeance"
index 77a6d735dc80c97fff785a4ffdbf9ecabc7d1fca..be48bcd7bc293d1448ae420898741f32d5b794f0 100644 (file)
@@ -366,7 +366,7 @@ set g_freezetag 0 "Freeze Tag: Freeze the opposing team(s) to win, unfreeze team
 set g_freezetag_warmup 10 "time players get to run around before the round starts"
 set g_freezetag_point_limit -1 "Freeze Tag point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 set g_freezetag_point_leadlimit -1     "Freeze Tag point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-set g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate"
+set g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate if g_freezetag_revive_time_to_score is off"
 set g_freezetag_revive_speed_t2s 0.25 "Speed for reviving a frozen teammate if g_freezetag_revive_time_to_score is active"
 set g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range (if g_freezetag_revive_time_to_score is active reviving progress is not cleared)"
 set g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him"
diff --git a/gfx/menu/luma/icon_mod_jeff.tga b/gfx/menu/luma/icon_mod_jeff.tga
deleted file mode 100644 (file)
index 9fc2a9a..0000000
Binary files a/gfx/menu/luma/icon_mod_jeff.tga and /dev/null differ
diff --git a/gfx/menu/luminos/icon_mod_jeff.tga b/gfx/menu/luminos/icon_mod_jeff.tga
deleted file mode 100644 (file)
index 4bf904b..0000000
Binary files a/gfx/menu/luminos/icon_mod_jeff.tga and /dev/null differ
diff --git a/gfx/menu/wickedx/icon_mod_jeff.tga b/gfx/menu/wickedx/icon_mod_jeff.tga
deleted file mode 100644 (file)
index 4bf904b..0000000
Binary files a/gfx/menu/wickedx/icon_mod_jeff.tga and /dev/null differ
diff --git a/gfx/menu/xaw/icon_mod_jeff.tga b/gfx/menu/xaw/icon_mod_jeff.tga
deleted file mode 100644 (file)
index 4bf904b..0000000
Binary files a/gfx/menu/xaw/icon_mod_jeff.tga and /dev/null differ
index 915bb8aca12ffa381dad33f21b7b99b6c261e841..f4707163aef8fe16b76194092a140f2bf00450b0 100644 (file)
@@ -1,5 +1,12 @@
 #include "superweapons.qh"
 
+#ifdef SVQC
+METHOD(Superweapons, m_persistent, bool(StatusEffects this, entity actor))
+{
+    return (actor.items & IT_UNLIMITED_SUPERWEAPONS);
+}
+#endif
+
 #ifdef CSQC
 METHOD(Superweapons, m_active, bool(StatusEffects this, entity actor))
 {
index 0ec5d4d5c5760ac87fbc44b70b81637bb26a068f..90fda09cb47a52f7fe0c767c2072bc41d43be305 100644 (file)
@@ -39,12 +39,14 @@ METHOD(StatusEffects, m_apply, void(StatusEffects this, entity actor, float eff_
 
 METHOD(StatusEffects, m_remove, void(StatusEffects this, entity actor, int removal_type))
 {
-       if(!actor.statuseffects)
+       StatusEffects data = actor.statuseffects;
+       if(!data)
                return;
-       if(removal_type == STATUSEFFECT_REMOVE_NORMAL && this.m_active(this, actor))
+       // NOTE: persistent effects do not make a sound on removal, this is intended as a workaround for #2620
+       if(removal_type == STATUSEFFECT_REMOVE_NORMAL && !(data.statuseffect_flags[this.m_id] & STATUSEFFECT_FLAG_PERSISTENT) && this.m_active(this, actor))
                sound(actor, CH_TRIGGER, this.m_sound_rm, VOL_BASE, ATTEN_NORM);
-       actor.statuseffects.statuseffect_time[this.m_id] = 0;
-       actor.statuseffects.statuseffect_flags[this.m_id] = 0;
+       data.statuseffect_time[this.m_id] = 0;
+       data.statuseffect_flags[this.m_id] = 0;
        StatusEffects_update(actor);
 }
 
index 48216f39297d7fd8178b41f3982f02f2d0cc291d..1bd0eb7aeb5bb54bc9ba30a69d3cb32b6ac12ad9 100644 (file)
@@ -414,11 +414,40 @@ void _Movetype_Impact(entity this, entity oth)  // SV_Impact
        if(!this && !oth)
                return;
 
+       // due to a lack of pointers in QC, we must save the trace values and restore them for other functions
+       bool save_trace_allsolid = trace_allsolid;
+       bool save_trace_startsolid = trace_startsolid;
+       float save_trace_fraction = trace_fraction;
+       bool save_trace_inwater = trace_inwater;
+       bool save_trace_inopen = trace_inopen;
+       vector save_trace_endpos = trace_endpos;
+       vector save_trace_plane_normal = trace_plane_normal;
+       float save_trace_plane_dist = trace_plane_dist;
+       entity save_trace_ent = trace_ent;
+       int save_trace_dpstartcontents = trace_dpstartcontents;
+       int save_trace_dphitcontents = trace_dphitcontents;
+       int save_trace_dphitq3surfaceflags = trace_dphitq3surfaceflags;
+       string save_trace_dphittexturename = trace_dphittexturename;
+
        if(this.solid != SOLID_NOT && gettouch(this))
                gettouch(this)(this, oth);
 
        if(oth.solid != SOLID_NOT && gettouch(oth))
                gettouch(oth)(oth, this);
+
+       trace_allsolid = save_trace_allsolid;
+       trace_startsolid = save_trace_startsolid;
+       trace_fraction = save_trace_fraction;
+       trace_inwater = save_trace_inwater;
+       trace_inopen = save_trace_inopen;
+       trace_endpos = save_trace_endpos;
+       trace_plane_normal = save_trace_plane_normal;
+       trace_plane_dist = save_trace_plane_dist;
+       trace_ent = save_trace_ent;
+       trace_dpstartcontents = save_trace_dpstartcontents;
+       trace_dphitcontents = save_trace_dphitcontents;
+       trace_dphitq3surfaceflags = save_trace_dphitq3surfaceflags;
+       trace_dphittexturename = save_trace_dphittexturename;
 }
 
 void _Movetype_LinkEdict_TouchAreaGrid(entity this)  // SV_LinkEdict_TouchAreaGrid
@@ -636,7 +665,7 @@ void _Movetype_CheckStuck(entity this)  // SV_CheckStuck
        }
 }
 
-vector _Movetype_ClipVelocity(vector vel, vector norm, float f)  // SV_ClipVelocity
+vector _Movetype_ClipVelocity(vector vel, vector norm, float f)  // ClipVelocity
 {
        vel -= ((vel * norm) * norm) * f;
 
@@ -725,9 +754,6 @@ void _Movetype_Physics_Frame(entity this, float movedt)
                case MOVETYPE_FLY:
                case MOVETYPE_FLY_WORLDONLY:
                        _Movetype_Physics_Toss(this, movedt);
-                       if(wasfreed(this))
-                               return;
-                       _Movetype_LinkEdict(this, true);
                        break;
                case MOVETYPE_PHYSICS:
                        break;
index 772eb1b070c59a2be0df4aa72df5bc904e115838..67405a636498d0f0aef004f2b5236750e42dda4d 100644 (file)
@@ -56,9 +56,17 @@ void _Movetype_Physics_Toss(entity this, float dt)  // SV_Physics_Toss
                if (wasfreed(this))
                        return;
 
-               if (trace_startsolid)
+               // NOTE: this is bmodelstartsolid in the engine
+               if (trace_startsolid && trace_ent.solid == SOLID_BSP)
                {
+                       // QC lacks pointers so we must save the old trace values
+                       float oldtrace_fraction = trace_fraction;
+                       vector oldtrace_plane_normal = trace_plane_normal;
+                       entity oldtrace_ent = trace_ent;
                        _Movetype_UnstickEntity(this);
+                       trace_fraction = oldtrace_fraction;
+                       trace_plane_normal = oldtrace_plane_normal;
+                       trace_ent = oldtrace_ent;
                        if(!_Movetype_PushEntity(this, move, true, true))
                                return;
                        if (wasfreed(this))
index 3c6f32e618201989264f4e404129693b35060377..4a6ee87d5cc16ac5bb008897ba88007994da9813 100644 (file)
@@ -130,7 +130,7 @@ void W_Electro_TouchExplode(entity this, entity toucher)
 }
 
 
-void sys_phys_update_single(entity this);
+//void sys_phys_update_single(entity this);
 
 void W_Electro_Bolt_Think(entity this)
 {