]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sv_phys.c
Enable shadowmapping on transparent surfaces.
[xonotic/darkplaces.git] / sv_phys.c
index 87717114d0cffddcb5f7278126259b31e41e2a64..4ee8aa3b82402634d2f6d9528e7e42843cfd18a7 100644 (file)
--- a/sv_phys.c
+++ b/sv_phys.c
@@ -2881,6 +2881,8 @@ static void SV_Physics_Entity (prvm_edict_t *ent)
                }
                break;
        default:
+               if((int) PRVM_serveredictfloat(ent, movetype) >= MOVETYPE_USER_FIRST && (int) PRVM_serveredictfloat(ent, movetype) <= MOVETYPE_USER_LAST)
+                       break;
                Con_Printf ("SV_Physics: bad movetype %i\n", (int)PRVM_serveredictfloat(ent, movetype));
                break;
        }
@@ -2929,6 +2931,8 @@ static void SV_Physics_ClientEntity_NoThink (prvm_edict_t *ent)
        case MOVETYPE_PHYSICS:
                break;
        default:
+               if((int) PRVM_serveredictfloat(ent, movetype) >= MOVETYPE_USER_FIRST && (int) PRVM_serveredictfloat(ent, movetype) <= MOVETYPE_USER_LAST)
+                       break;
                Con_Printf ("SV_Physics_ClientEntity_NoThink: bad movetype %i\n", (int)PRVM_serveredictfloat(ent, movetype));
                break;
        }
@@ -3074,9 +3078,12 @@ static void SV_Physics_ClientEntity(prvm_edict_t *ent)
                break;
        case MOVETYPE_NOCLIP:
                SV_RunThink(ent);
-               SV_CheckWater(ent);
-               VectorMA(PRVM_serveredictvector(ent, origin), sv.frametime, PRVM_serveredictvector(ent, velocity), PRVM_serveredictvector(ent, origin));
-               VectorMA(PRVM_serveredictvector(ent, angles), sv.frametime, PRVM_serveredictvector(ent, avelocity), PRVM_serveredictvector(ent, angles));
+               if (host_client->clmovement_inputtimeout <= 0) // don't run physics here if running asynchronously
+               {
+                       SV_CheckWater(ent);
+                       VectorMA(PRVM_serveredictvector(ent, origin), sv.frametime, PRVM_serveredictvector(ent, velocity), PRVM_serveredictvector(ent, origin));
+                       VectorMA(PRVM_serveredictvector(ent, angles), sv.frametime, PRVM_serveredictvector(ent, avelocity), PRVM_serveredictvector(ent, angles));
+               }
                break;
        case MOVETYPE_STEP:
                if (host_client->clmovement_inputtimeout <= 0) // don't run physics here if running asynchronously
@@ -3114,6 +3121,8 @@ static void SV_Physics_ClientEntity(prvm_edict_t *ent)
                SV_RunThink (ent);
                break;
        default:
+               if((int) PRVM_serveredictfloat(ent, movetype) >= MOVETYPE_USER_FIRST && (int) PRVM_serveredictfloat(ent, movetype) <= MOVETYPE_USER_LAST)
+                       break;
                Con_Printf ("SV_Physics_ClientEntity: bad movetype %i\n", (int)PRVM_serveredictfloat(ent, movetype));
                break;
        }