]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Remove legacy Quake bbox expansion: KA
authorbones_was_here <bones_was_here@xonotic.au>
Sat, 15 Jul 2023 11:01:48 +0000 (21:01 +1000)
committerbones_was_here <bones_was_here@xonotic.au>
Thu, 14 Mar 2024 22:14:47 +0000 (08:14 +1000)
Gives ball a symmetrical bbox suitable for sv_legacy_bbox_expand 0

qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc
qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc

index c50d0d2fc1b964645738a6629f70c96684bd9f8a..4ba23b197955ca4efdecb6d9ad06a23a178486d1 100644 (file)
@@ -198,6 +198,7 @@ void ka_DropEvent(entity player) // runs any time that a player is supposed to l
        IL_PUSH(g_damagedbycontents, ball);
        ball.effects &= ~EF_NODRAW;
        setorigin(ball, player.origin + '0 0 10');
+       nudgeoutofsolid(ball); // a ball has a horizontally bigger bbox than a player
        ball.velocity = '0 0 200' + '0 100 0'*crandom() + '100 0 0'*crandom();
        ball.owner = NULL;
        navigation_dynamicgoal_set(ball, player);
@@ -240,7 +241,10 @@ void ka_SpawnBalls()
                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
+               // 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
+               // bones_was_here: that was WITH sv_legacy_bbox_expand 1 and FL_ITEM (mins -= '15 15 1'; maxs += '15 15 1')
+               // it's round so should have a symmetrical bbox, same height as pickup items so it can't be jumped over in any physics
+               setsize(e, '-24 -24 -24', '24 24 24');
                e.damageforcescale = autocvar_g_keepawayball_damageforcescale;
                e.takedamage = DAMAGE_YES;
                e.event_damage = ka_DamageEvent;
index 0be1e46639754422310e2d4789bb4d9637d6ca38..507d31750599f1182ca7d14fbd9a2e72a23a6d08 100644 (file)
@@ -179,6 +179,7 @@ void tka_DropEvent(entity player) // runs any time that a player is supposed to
        ball.takedamage = DAMAGE_YES;
        ball.effects &= ~EF_NODRAW;
        setorigin(ball, player.origin + '0 0 10');
+       nudgeoutofsolid(ball); // a ball has a horizontally bigger bbox than a player
        ball.velocity = '0 0 200' + '0 100 0'*crandom() + '100 0 0'*crandom();
        ball.owner = NULL;
        navigation_dynamicgoal_set(ball, player);
@@ -220,7 +221,10 @@ void tka_SpawnBalls()
        {
                entity e = new(keepawayball);
                setmodel(e, MDL_TKA_BALL);
-               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
+               // 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
+               // bones_was_here: that was WITH sv_legacy_bbox_expand 1 and FL_ITEM (mins -= '15 15 1'; maxs += '15 15 1')
+               // it's round so should have a symmetrical bbox, same height as pickup items so it can't be jumped over in any physics
+               setsize(e, '-24 -24 -24', '24 24 24');
                e.damageforcescale = autocvar_g_tkaball_damageforcescale;
                e.takedamage = DAMAGE_YES;
                e.solid = SOLID_TRIGGER;