-//
-// decide which move function to call
-//
- switch ((int)ent->v.movetype)
- {
- case MOVETYPE_NONE:
- if (!SV_RunThink (ent))
- return;
- break;
-
- case MOVETYPE_WALK:
- if (!SV_RunThink (ent))
- return;
- if (!SV_CheckWater (ent) && ! ((int)ent->v.flags & FL_WATERJUMP) )
- SV_AddGravity (ent);
- SV_CheckStuck (ent);
- SV_WalkMove (ent);
- break;
-
- case MOVETYPE_TOSS:
- case MOVETYPE_BOUNCE:
- SV_Physics_Toss (ent);
- break;
-
- case MOVETYPE_FLY:
- if (!SV_RunThink (ent))
- return;
- SV_CheckWater (ent);
- //SV_FlyMove (ent, sv.frametime, NULL);
- SV_WalkMove (ent);
- break;
-
- case MOVETYPE_NOCLIP:
- if (!SV_RunThink (ent))
- return;
- SV_CheckWater (ent);
- VectorMA (ent->v.origin, sv.frametime, ent->v.velocity, ent->v.origin);
- VectorMA (ent->v.angles, sv.frametime, ent->v.avelocity, ent->v.angles);
- break;
-
- default:
- Host_Error ("SV_Physics_client: bad movetype %i", (int)ent->v.movetype);
- }
-
-//
-// call standard player post-think
-//
- SV_LinkEdict (ent, true);
-
- pr_global_struct->time = sv.time;
- pr_global_struct->self = EDICT_TO_PROG(ent);
- PR_ExecuteProgram (pr_global_struct->PlayerPostThink, "QC function PlayerPostThink is missing");