]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'LegendaryGuard/electricity_effect' into 'master'
authorterencehill <piuntn@gmail.com>
Tue, 2 May 2023 16:58:01 +0000 (16:58 +0000)
committerterencehill <piuntn@gmail.com>
Tue, 2 May 2023 16:58:01 +0000 (16:58 +0000)
New electricity effect

Closes #2717

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

26 files changed:
.tx/merge-base
common.la.po
languages.txt
models/weapons/g_fireball.md3
models/weapons/h_ok_grenade.iqm
models/weapons/h_ok_grenade.iqm.framegroups
models/weapons/h_ok_hmg.iqm
models/weapons/h_ok_hmg.iqm.framegroups
models/weapons/h_ok_mg.iqm
models/weapons/h_ok_rl.iqm
models/weapons/h_ok_rl.iqm.framegroups
models/weapons/h_ok_sniper.iqm
models/weapons/v_fireball.md3
qcsrc/common/gamemodes/gamemode/ctf/sv_ctf.qc
qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc
qcsrc/common/gamemodes/gamemode/keyhunt/sv_keyhunt.qc
qcsrc/common/gamemodes/gamemode/onslaught/cl_controlpoint.qc
qcsrc/common/gamemodes/gamemode/onslaught/cl_generator.qc
qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qc
qcsrc/lib/oo.qh
qcsrc/lib/warpzone/util_server.qc
textures/fireball.tga
textures/fireball_gloss.tga
textures/fireball_glow.tga
xonotic-client.cfg
xonotic-server.cfg

index 62088368acce8c56cfed1aa14b4061a07e777505..abf02d0c6c6e45b9d849371803474a4f183fb6f3 100644 (file)
@@ -1 +1 @@
-Sun 16 Apr 2023 07:24:58 AM CEST
+Sun 30 Apr 2023 07:23:00 AM CEST
index af38fa29987c32c7bc1472d8e601998b4b4b6885..5031cb389945e448ba37a2df758facdb824111e2 100644 (file)
@@ -11,7 +11,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2023-04-09 07:22+0200\n"
 "PO-Revision-Date: 2013-09-12 16:53+0000\n"
-"Last-Translator: oblector o, 2022\n"
+"Last-Translator: oblector o, 2022-2023\n"
 "Language-Team: Latin (http://app.transifex.com/team-xonotic/xonotic/language/"
 "la/)\n"
 "Language: la\n"
@@ -902,37 +902,45 @@ msgstr "Si rationarium mutare vis, ^2scoreboard_columns_set iubeto."
 
 #: qcsrc/client/hud/panel/scoreboard.qc:685
 msgid "Usage:"
-msgstr ""
+msgstr "Usus:"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:687
 msgid "^2scoreboard_columns_set ^3field1 field2 ..."
-msgstr ""
+msgstr "^2scoreboard_columns_set ^3columna1 columna2 ..."
 
 #: qcsrc/client/hud/panel/scoreboard.qc:688
 msgid ""
 "^2scoreboard_columns_set ^7without arguments reads the arguments from the "
 "cvar scoreboard_columns"
 msgstr ""
+"^2scoreboard_columns_set ^7si non sunt argumenta, columnas legit ex "
+"variabili scoreboard_columns"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:689
 msgid ""
 "  ^5Note: ^7scoreboard_columns_set without arguments is executed on every "
 "map start"
 msgstr ""
+"  ^5Nota: ^7scoreboard_columns_set si non sunt argumenta, iubetur semper cum "
+"ludus incipit"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:690
 msgid ""
 "^2scoreboard_columns_set ^3expand_default ^7loads default layout and expands "
 "it into the cvar scoreboard_columns so you can edit it"
 msgstr ""
+"^2scoreboard_columns_set ^3expand_default ^7rationarii formam ordinariam in "
+"variabili scoreboard_columns scribit ut legas et transcribas id quod vellis"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:691
 msgid "You can use a ^3|^7 to start the right-aligned fields."
-msgstr ""
+msgstr "Signum ^3|^7 scribe ut ad columnae latus dextrum res scribantur."
 
 #: qcsrc/client/hud/panel/scoreboard.qc:692
 msgid "The following field names are recognized (case insensitive):"
 msgstr ""
+"Noscuntur columnarum nomina quae sequuntur (litteras parvas vel magnas "
+"scribere potes):"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:698
 msgid ""
@@ -941,28 +949,38 @@ msgid ""
 "or in all but these game types. You can also specify 'all' as a\n"
 "field to show all fields available for the current game mode."
 msgstr ""
+"Ante columnae nomen scribere potes signum + vel -, etiam sequentes\n"
+"ludorum modorum nomina, signa commata interposita, denique lineam /,\n"
+"ut columna scribatur solum cum inter ea nomina ludi modus sit, vel\n"
+"cum inter ea non sit. Atque 'all' scribere potes ut omnes ludi modi\n"
+"columnas videas."
 
 #: qcsrc/client/hud/panel/scoreboard.qc:704
 msgid ""
 "The special game type names 'teams' and 'noteams' can be used to\n"
 "include/exclude ALL teams/noteams game modes."
-msgstr ""
+msgstr "Nomen 'teams' manuum modis est, et nomen 'noteams' aliis modis."
 
 #: qcsrc/client/hud/panel/scoreboard.qc:708
 msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4"
 msgstr ""
+"Exemplum: scoreboard_columns_set name ping pl | +ctf/columna3 -dm/columna4"
 
 #: qcsrc/client/hud/panel/scoreboard.qc:709
 msgid ""
 "will display name, ping and pl aligned to the left, and the fields\n"
 "right of the vertical bar aligned to the right."
 msgstr ""
+"nomen, ping et PL ad latus sinistrum scribuntur, et aliae ad latus\n"
+"dextrum scribuntur."
 
 #: qcsrc/client/hud/panel/scoreboard.qc:711
 msgid ""
 "'field3' will only be shown in CTF, and 'field4' will be shown in all\n"
 "other gamemodes except DM."
 msgstr ""
+"'columna3' modo Vexilli Captu 'ctf' videbitur, et 'columna4' omni\n"
+"modo praeter Interfectionem 'dm' videbitur."
 
 #: qcsrc/client/hud/panel/scoreboard.qc:990
 #: qcsrc/client/hud/panel/scoreboard.qc:997
@@ -1348,15 +1366,15 @@ msgstr "%d secunda manentia"
 
 #: qcsrc/client/mapvoting.qc:558
 msgid "mv_mapdownload: ^3You're not supposed to use this command on your own!"
-msgstr ""
+msgstr "mv_mapdownload: ^3Non decet temet ipsum hunc iubere!"
 
 #: qcsrc/client/mapvoting.qc:568
 msgid "^1Error:^7 Couldn't find pak index."
-msgstr ""
+msgstr "^1Defuit:^7 Index Pak inventus non est."
 
 #: qcsrc/client/mapvoting.qc:577
 msgid "Requesting preview..."
-msgstr ""
+msgstr "Pictura poscitur..."
 
 #: qcsrc/client/view.qc:883
 msgid "Nade timer"
@@ -1372,7 +1390,7 @@ msgstr "Tempus ad restitutionem"
 
 #: qcsrc/common/command/generic.qc:156
 msgid "error creating curl handle"
-msgstr ""
+msgstr "defuit in creatione curl handle"
 
 #: qcsrc/common/gamemodes/gamemode/assault/assault.qh:8
 msgid "Assault"
index dc178320fa0e51f32b299adc3ac210bfb34c54ce..138dde19e668af1b18412b6299fab0091a30d085 100644 (file)
@@ -8,7 +8,7 @@ es    "Spanish" "Español" 99%
 fr    "French" "Français" 100%
 ga    "Irish" "Irish" 29%
 it    "Italian" "Italiano" 99%
-la    "Latin" "Lingua Latina" 56%
+la    "Latin" "Lingua Latina" 57%
 hu    "Hungarian" "Magyar" 43%
 nl    "Dutch" "Nederlands" 62%
 pl    "Polish" "Polski" 80%
index b1463090f7d2d5783b86cf2c9c032b089c5e2f56..605e5f2143c5b5106f557e11af31fa118d9cdfc8 100644 (file)
Binary files a/models/weapons/g_fireball.md3 and b/models/weapons/g_fireball.md3 differ
index eaffcc2c1964270e6e8713f34906ea162d722521..a4a4bc688649885363e9cff85b2fe1d130446c0b 100644 (file)
Binary files a/models/weapons/h_ok_grenade.iqm and b/models/weapons/h_ok_grenade.iqm differ
index ceb09de4f815a3f2157ba496ec117ebbee9d0413..da3741f91148b1b60439bfcef4a729f8ad452aa3 100644 (file)
@@ -1,9 +1,8 @@
 /*
-Generated framegroups file for h_laser
+Generated framegroups file for h_ok_grenade
 Used by DarkPlaces to simulate frame groups in DPM models.
 */
 
-1 51 50 0 // h_laser hgrenade_fire
-52 101 50 0 // h_laser hgrenade_idle
-153 101 5 1 // h_laser hgrenade_idle
-254 101 5 1 // h_laser hgrenade_idle
+1 37 50 0 // h_ok_grenade fire
+38 2 50 0 // h_ok_grenade idle
+40 2 5 1 // h_ok_grenade idle
index e8f9a8e0b2a6c67918f661e0100b18c0a92cce6a..50c0b10e574448c5fd5472f9d220ce246a196c92 100644 (file)
Binary files a/models/weapons/h_ok_hmg.iqm and b/models/weapons/h_ok_hmg.iqm differ
index 8067f629f340b8137fedac5c14745687e63c7905..da79f83a09cf4525343ae6102bd68c21cfbf151a 100644 (file)
@@ -1,10 +1,9 @@
 /*
-Generated framegroups file for h_uzi
+Generated framegroups file for h_ok_hmg
 Used by DarkPlaces to simulate frame groups in DPM models.
 */
 
-1 11 120 0 // h_uzi mgafire
-12 11 120 0 // h_uzi mgafire
-23 51 2 1 // h_uzi mgaidle
-74 11 30 0 // h_uzi mgafire
-85 11 30 0 // h_uzi mgafire
+1 11 120 0 // h_ok_hmg fire
+12 11 120 0 // h_ok_hmg fire
+23 52 2 1 // h_ok_hmg idle
+75 11 30 0 // h_ok_hmg fire
index f2a8db94912939629cbf1e821260d613bd795260..ec72433a8291323f077c8b3ab04fea2a1571315d 100644 (file)
Binary files a/models/weapons/h_ok_mg.iqm and b/models/weapons/h_ok_mg.iqm differ
index 2870b04d89522c008fdf770fa78157f9c03ba3b6..89acc47622b34b004ba86e4805ee24030a50fdb2 100644 (file)
Binary files a/models/weapons/h_ok_rl.iqm and b/models/weapons/h_ok_rl.iqm differ
index fae30c94d638986eb92afeb08f2306e4261e10e5..1a93d58d86014c79ea30f1d373d55ba33d749028 100644 (file)
@@ -1,10 +1,9 @@
 /*
-Generated framegroups file for h_uzi
+Generated framegroups file for h_ok_rl
 Used by DarkPlaces to simulate frame groups in DPM models.
 */
 
-1 61 30 0 // h_uzi mgafire
-62 61 30 0 // h_uzi mgafire
-123 101 3 1 // h_uzi mgaidle
-224 61 30 0 // h_uzi mgafire
-285 61 30 0 // h_uzi mgafire
+1 61 30 0 // h_ok_rl fire
+62 61 30 0 // h_ok_rl fire
+123 101 3 1 // h_ok_rl idle
+224 61 30 0 // h_ok_rl fire
index abc34f40649f1c0fa5714bc18d7d1c84d6fa4c1a..d4dce98eed7aeb5468a694f1aeb21486289973c4 100644 (file)
Binary files a/models/weapons/h_ok_sniper.iqm and b/models/weapons/h_ok_sniper.iqm differ
index 3015329669e16795dae5d80caa6ab2ffa71f9ef5..034a63382ac38d1fe5330d7609cfe36dedf7cfc6 100644 (file)
Binary files a/models/weapons/v_fireball.md3 and b/models/weapons/v_fireball.md3 differ
index 826a826f46876ffa000660dcb66b9a27fb1c7975..d92dd0a3b99245f0d38553f429edbd3a248e0254 100644 (file)
@@ -401,6 +401,7 @@ void ctf_Handle_Retrieve(entity flag, entity player)
        GameRules_scoring_vip(player, true);
 
        // reset flag
+       flag.solid = SOLID_NOT; // before setorigin to prevent area grid linking
        if(player.vehicle)
        {
                setattachment(flag, player.vehicle, "");
@@ -414,7 +415,6 @@ void ctf_Handle_Retrieve(entity flag, entity player)
        }
        set_movetype(flag, MOVETYPE_NONE);
        flag.takedamage = DAMAGE_NO;
-       flag.solid = SOLID_NOT;
        flag.angles = '0 0 0';
        flag.ctf_status = FLAG_CARRY;
 
@@ -467,11 +467,11 @@ void ctf_Handle_Throw(entity player, entity receiver, int droptype)
        // reset the flag
        setattachment(flag, NULL, "");
        tracebox(player.origin - FLAG_DROP_OFFSET, flag.m_mins, flag.m_maxs, player.origin + FLAG_DROP_OFFSET, MOVE_NOMONSTERS, flag);
+       flag.solid = SOLID_TRIGGER; // before setorigin to ensure area grid linking
        setorigin(flag, trace_endpos);
        flag.owner.flagcarried = NULL;
        GameRules_scoring_vip(flag.owner, false);
        flag.owner = NULL;
-       flag.solid = SOLID_TRIGGER;
        flag.ctf_dropper = player;
        flag.ctf_droptime = time;
        flag.ctf_landtime = 0;
@@ -689,6 +689,7 @@ void ctf_Handle_Pickup(entity flag, entity player, int pickuptype)
        flag.owner = player;
        player.flagcarried = flag;
        GameRules_scoring_vip(player, true);
+       flag.solid = SOLID_NOT; // before setorigin to prevent area grid linking
        if(player.vehicle)
        {
                setattachment(flag, player.vehicle, "");
@@ -704,7 +705,6 @@ void ctf_Handle_Pickup(entity flag, entity player, int pickuptype)
        // flag setup
        set_movetype(flag, MOVETYPE_NONE);
        flag.takedamage = DAMAGE_NO;
-       flag.solid = SOLID_NOT;
        flag.angles = '0 0 0';
        flag.ctf_status = FLAG_CARRY;
 
@@ -1186,13 +1186,13 @@ void ctf_RespawnFlag(entity flag)
 
        // reset the flag
        setattachment(flag, NULL, "");
+       flag.solid = SOLID_TRIGGER; // before setorigin to ensure area grid linking
        setorigin(flag, flag.ctf_spawnorigin);
 
        //set_movetype(flag, ((flag.noalign) ? MOVETYPE_NONE : MOVETYPE_TOSS)); // would be desired, except maps that want floating flags have it set to fall!
        set_movetype(flag, MOVETYPE_NONE); // match the initial setup handling (flag doesn't move when spawned)
        flag.takedamage = DAMAGE_NO;
        SetResourceExplicit(flag, RES_HEALTH, flag.max_health);
-       flag.solid = SOLID_TRIGGER;
        flag.velocity = '0 0 0';
        flag.angles = flag.mangle;
        flag.flags = FL_ITEM | FL_NOTARGET;
index 4ad694de826f374e42bfa59eea7861b4b096a5a9..8b024dbc7bd025bb13175d0ffb814f790c8e8c1b 100644 (file)
@@ -247,13 +247,13 @@ void ka_SpawnBall()
 {
        entity e = new(keepawayball);
        setmodel(e, MDL_KA_BALL);
+       e.solid = SOLID_TRIGGER; // before setsize to ensure area grid linking
        setsize(e, '-16 -16 -20', '16 16 20'); // 20 20 20 was too big, player is only 16 16 24... gotta cheat with the Z (20) axis so that the particle isn't cut off
        e.damageforcescale = autocvar_g_keepawayball_damageforcescale;
        e.takedamage = DAMAGE_YES;
        e.event_damage = ka_DamageEvent;
        e.damagedbycontents = true;
        IL_PUSH(g_damagedbycontents, e);
-       e.solid = SOLID_TRIGGER;
        set_movetype(e, MOVETYPE_BOUNCE);
        e.glow_color = autocvar_g_keepawayball_trail_color;
        e.glow_trail = true;
index 1553bf5b4bc90f5f1319ae98a24519cac7108733..8396c1e619d0f80c1fca39db7197f224fbee26db 100644 (file)
@@ -215,6 +215,7 @@ vector kh_AttachedOrigin(entity e)  // runs when a team captures the flag, it ca
 
 void kh_Key_Attach(entity key)  // runs when a player picks up a key and several times when a key is assigned to a player at the start of a round
 {
+       key.solid = SOLID_NOT; // before setorigin to prevent area grid linking
 #ifdef KH_PLAYER_USE_ATTACHMENT
        entity first = key.owner.kh_next;
        if(key == first)
@@ -248,7 +249,6 @@ void kh_Key_Attach(entity key)  // runs when a player picks up a key and several
        key.flags = 0;
        if(IL_CONTAINS(g_items, key))
                IL_REMOVE(g_items, key);
-       key.solid = SOLID_NOT;
        set_movetype(key, MOVETYPE_NONE);
        key.team = key.owner.team;
        key.nextthink = time;
@@ -260,6 +260,7 @@ void kh_Key_Attach(entity key)  // runs when a player picks up a key and several
 
 void kh_Key_Detach(entity key) // runs every time a key is dropped or lost. Runs several times times when all the keys are captured
 {
+       key.solid = SOLID_TRIGGER; // before setorigin to ensure area grid linking
 #ifdef KH_PLAYER_USE_ATTACHMENT
        entity first = key.owner.kh_next;
        if(key == first)
@@ -289,7 +290,6 @@ void kh_Key_Detach(entity key) // runs every time a key is dropped or lost. Runs
        key.flags = FL_ITEM;
        if(!IL_CONTAINS(g_items, key))
                IL_PUSH(g_items, key);
-       key.solid = SOLID_TRIGGER;
        set_movetype(key, MOVETYPE_TOSS);
        key.pain_finished = time + autocvar_g_balance_keyhunt_delay_return;
        key.damageforcescale = autocvar_g_balance_keyhunt_damageforcescale;
index cce889f89f780756250f64d9f9a0bb430d62ae29..7694f02fb6ade6a23c722f08785bc38ac97e9bd3 100644 (file)
@@ -108,23 +108,22 @@ void cpicon_construct(entity this, bool isnew)
 {
        this.netname = "Control Point Icon";
 
+       this.solid = SOLID_NOT; // before setmodel/setsize to prevent area grid linking
        setmodel(this, MDL_ONS_CP);
        setsize(this, CPICON_MIN, CPICON_MAX);
 
        if(this.icon_realmodel == NULL)
        {
                this.icon_realmodel = new(cpicon_model);
+               this.icon_realmodel.solid = SOLID_NOT;
                setmodel(this.icon_realmodel, MDL_Null);
                setorigin(this.icon_realmodel, this.origin);
                setsize(this.icon_realmodel, CPICON_MIN, CPICON_MAX);
                set_movetype(this.icon_realmodel, MOVETYPE_NOCLIP);
-               this.icon_realmodel.solid = SOLID_NOT;
        }
 
        if(this.iscaptured) { this.icon_realmodel.solid = SOLID_BBOX; }
 
-       set_movetype(this, MOVETYPE_NOCLIP);
-       this.solid                      = SOLID_NOT;
        set_movetype(this, MOVETYPE_NOCLIP);
        this.move_time          = time;
        this.drawmask           = MASK_NORMAL;
index 3a72c8d497d089417b33b18e6d4524741f6aea50..d8d28488abff4064c58969bc126b4b6f01d107b9 100644 (file)
@@ -157,10 +157,10 @@ void generator_construct(entity this, bool isnew)
 
        setorigin(this, this.origin);
        setmodel(this, MDL_ONS_GEN);
+       this.solid                      = SOLID_BBOX; // before setsize to ensure area grid linking
        setsize(this, GENERATOR_MIN, GENERATOR_MAX);
 
        set_movetype(this, MOVETYPE_NOCLIP);
-       this.solid                      = SOLID_BBOX;
        set_movetype(this, MOVETYPE_NOCLIP);
        this.move_time          = time;
        this.drawmask           = MASK_NORMAL;
index 7f2def318011cb2a17f497345a0ba09784483e75..e48ea346432df17c8ef9e9f7f69825d07ab34baa 100644 (file)
@@ -601,13 +601,13 @@ void ons_ControlPoint_Icon_Spawn(entity cp, entity player)
 {
        entity e = new(onslaught_controlpoint_icon);
 
+       e.solid = SOLID_NOT; // before setsize/setorigin to prevent area grid linking
        setsize(e, CPICON_MIN, CPICON_MAX);
        setorigin(e, cp.origin + CPICON_OFFSET);
 
        e.owner = cp;
        e.max_health = autocvar_g_onslaught_cp_health;
        SetResourceExplicit(e, RES_HEALTH, autocvar_g_onslaught_cp_buildhealth);
-       e.solid = SOLID_NOT;
        e.takedamage = DAMAGE_AIM;
        e.bot_attack = true;
        IL_PUSH(g_bot_targets, e);
index 9048202fe28f1da4b5ce0fb753cda1b6aca830b1..5960287bf2ec91ba771a2e91350ea66a432b4d98 100644 (file)
@@ -4,17 +4,23 @@
 #include "nil.qh"
 #include "static.qh"
 
-.vector origin;
-
+// pure entities: not linked to the area grid
+// see: sv_areagrid_link_SOLID_NOT and cl_areagrid_link_SOLID_NOT
 .bool pure_data;
-#define is_pure(e) ((e).pure_data)
-/** @deprecated use new_pure or NEW(class) */
-#define make_pure(e) MACRO_BEGIN \
-       (e).pure_data = true; \
-MACRO_END
-#define make_impure(e) MACRO_BEGIN \
-       (e).pure_data = false; \
-MACRO_END
+
+#ifdef GAMEQC
+       /** direct use is @deprecated use new_pure or NEW(class) */
+       #define make_pure(e) \
+               (e).pure_data = true; \
+               (e).solid = SOLID_NOT;
+       #define is_pure(e) ((e).pure_data && (e).solid == SOLID_NOT)
+#else
+       #define make_pure(e) \
+               (e).pure_data = true;
+       #define is_pure(e) ((e).pure_data)
+#endif // GAMEQC
+#define make_impure(e) \
+       (e).pure_data = false;
 
 .string classname;
 /** Location entity was spawned from in source */
@@ -25,7 +31,6 @@ entity _spawn();
 #define SPAWN_PURE 0
 #endif
 
-// pure entities: need no .origin
 #if SPAWN_PURE
 entity spawn_pure() = #600;
 #else
@@ -56,9 +61,9 @@ entity __spawn(string _classname, string _sourceLoc, bool pure)
        #define classfield(name) [[class(name)]]
        #define _new(class, pure) ((class) __spawn(#class, __FILE__ ":" STR(__LINE__), pure))
 #endif
-/** entities you care about seeing (.origin works) */
+/** entities you care about collisions with */
 #define new(class) _new(class, false)
-/** purely logical entities (.origin doesn't work) */
+/** purely logical entities (not linked to the area grid) */
 #define new_pure(class) _new(class, true)
 #define spawn() __spawn("entity", __FILE__ ":" STR(__LINE__), false)
 
index 658716052f6e9d0f2865a12808328b4bb2e74870..5f1aebf490268365fdd74e3e6d1fd6da87417c2c 100644 (file)
@@ -40,11 +40,11 @@ void WarpZoneLib_ExactTrigger_Init(entity this)
                }
        }
        setorigin(this, this.origin);
+       this.solid = SOLID_TRIGGER; // before setsize to ensure area grid linking
        if(this.scale)
                setsize(this, this.mins * this.scale, this.maxs * this.scale);
        else
                setsize(this, this.mins, this.maxs);
        set_movetype(this, MOVETYPE_NONE);
-       this.solid = SOLID_TRIGGER;
        this.model = "";
 }
index c631e8c880dc98a903d13d2683e7ef0dacd54cf6..766cdf6a8373c67129469e27c2a9ffe5c9ec559b 100644 (file)
Binary files a/textures/fireball.tga and b/textures/fireball.tga differ
index eaf50d0a2e63d8f4a51c8ff2f26fe4d33d158d1d..58b33199b52ae91828013cf07c20cef0a7fd7a4c 100644 (file)
Binary files a/textures/fireball_gloss.tga and b/textures/fireball_gloss.tga differ
index 358784d8fd784613e6766861f34404b496b92150..ce5dbeb814d0b249a42faf0659b1adb5510c0983 100644 (file)
Binary files a/textures/fireball_glow.tga and b/textures/fireball_glow.tga differ
index 22792e06ef6e6e15bb011be78d95f9d59dd1940c..46149e2d108a9985d25539c76e3fbc858ca0cec8 100644 (file)
@@ -919,3 +919,6 @@ set cl_rollkillspeed 10
 // Interpreted in post-config.cfg.
 seta menu_forced_saved_cvars "" "These cvars will always be saved, despite engine/Xonotic cvar saving status"
 set menu_reverted_nonsaved_cvars "" "These cvars are currently marked as saved in the flags, but have been reverted and won't stay saved. INTERNAL USE ONLY."
+
+// Avoid perf problems near '0 0 0'; `set` without a description is because only current DP has this engine cvar
+set cl_areagrid_link_SOLID_NOT 0
index 82cccae0f3b324fdcf0ce8ee999962c54772f483..94532425fecf63013af480dd795a2ada350a446f 100644 (file)
@@ -598,3 +598,6 @@ set sv_warpzone_allow_selftarget 0 "do not touch"
 sv_disablenotify 1
 
 set sv_quickmenu_file "" "filename of a custom server's quickmenu that will be selectable from the default client's quickmenu. This file must be sent in a pk3 archive and should have an unique name (e.g. quickmenu-servername.txt) to prevent overriding existing quickmenus"
+
+// Avoid perf problems near '0 0 0'; `set` without a description is because only current DP has this engine cvar
+set sv_areagrid_link_SOLID_NOT 0