]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/world.qc
Remove a FIXME that's fixed
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / world.qc
index 47198b7d98fd8c790ff81084038625bb4f0a8fea..0605a8fbdc31b7a3ea4c7c9e474d49c97f2cde5a 100644 (file)
@@ -735,8 +735,7 @@ spawnfunc(worldspawn)
        {
                if (!server_is_dedicated)
                {
-                       // force unloading of server pk3 files when starting a listen server
-                       // localcmd("\nfs_rescan\n"); // FIXME: does more harm than good, has unintended side effects. What we really want is to unload temporary pk3s only
+                       // DP unloads dlcache pk3s before starting a listen server since https://gitlab.com/xonotic/darkplaces/-/merge_requests/134
                        // restore csqc_progname too
                        string expect = "csprogs.dat";
                        wantrestart = cvar_string("csqc_progname") != expect;
@@ -2263,11 +2262,20 @@ void DropToFloor_Handler(entity this)
                return;
        }
 
-       vector end = this.origin - '0 0 256';
+       vector end = this.origin;
+       if (autocvar_sv_mapformat_is_quake3)
+               end.z -= 4096;
+       else if (autocvar_sv_mapformat_is_quake2)
+               end.z -= 128;
+       else
+               end.z -= 256; // Quake, QuakeWorld
 
        // NOTE: SV_NudgeOutOfSolid is used in the engine here
        if(autocvar_sv_gameplayfix_droptofloorstartsolid_nudgetocorrect)
+       {
+               _Movetype_UnstickEntity(this);
                move_out_of_solid(this);
+       }
 
        tracebox(this.origin, this.mins, this.maxs, end, MOVE_NORMAL, this);
 
@@ -2291,7 +2299,10 @@ void DropToFloor_Handler(entity this)
                        LOG_DEBUGF("DropToFloor_Handler: %v fixed badly placed entity", this.origin);
                        setorigin(this, trace_endpos);
                        if(autocvar_sv_gameplayfix_droptofloorstartsolid_nudgetocorrect)
+                       {
+                               _Movetype_UnstickEntity(this);
                                move_out_of_solid(this);
+                       }
                        SET_ONGROUND(this);
                        this.groundentity = trace_ent;
                        // if support is destroyed, keep suspended (gross hack for floating items in various maps)