-// #49 void(entity ent, float ideal_yaw, float speed_yaw) ChangeYaw
-void VM_CL_changeyaw (void)
-{
- prvm_edict_t *ent;
- float ideal, current, move, speed;
- VM_SAFEPARMCOUNT(3, VM_CL_changeyaw);
-
- ent = PRVM_G_EDICT(OFS_PARM0);
- if (ent == prog->edicts)
- {
- VM_Warning("changeyaw: can not modify world entity\n");
- return;
- }
- if (ent->priv.server->free)
- {
- VM_Warning("changeyaw: can not modify free entity\n");
- return;
- }
- current = ANGLEMOD(ent->fields.client->angles[1]);
- ideal = PRVM_G_FLOAT(OFS_PARM1);
- speed = PRVM_G_FLOAT(OFS_PARM2);
-
- if (current == ideal)
- return;
- move = ideal - current;
- if (ideal > current)
- {
- if (move >= 180)
- move = move - 360;
- }
- else
- {
- if (move <= -180)
- move = move + 360;
- }
- if (move > 0)
- {
- if (move > speed)
- move = speed;
- }
- else
- {
- if (move < -speed)
- move = -speed;
- }
-
- ent->fields.client->angles[1] = ANGLEMOD (current + move);
-}
-
-// #63 void(entity ent, float ideal_pitch, float speed_pitch) changepitch (DP_QC_CHANGEPITCH)
-void VM_CL_changepitch (void)
-{
- prvm_edict_t *ent;
- float ideal, current, move, speed;
- VM_SAFEPARMCOUNT(3, VM_CL_changepitch);
-
- ent = PRVM_G_EDICT(OFS_PARM0);
- if (ent == prog->edicts)
- {
- VM_Warning("changepitch: can not modify world entity\n");
- return;
- }
- if (ent->priv.server->free)
- {
- VM_Warning("changepitch: can not modify free entity\n");
- return;
- }
- current = ANGLEMOD( ent->fields.client->angles[0] );
- ideal = PRVM_G_FLOAT(OFS_PARM1);
- speed = PRVM_G_FLOAT(OFS_PARM2);
-
- if (current == ideal)
- return;
- move = ideal - current;
- if (ideal > current)
- {
- if (move >= 180)
- move = move - 360;
- }
- else
- {
- if (move <= -180)
- move = move + 360;
- }
- if (move > 0)
- {
- if (move > speed)
- move = speed;
- }
- else
- {
- if (move < -speed)
- move = -speed;
- }
-
- ent->fields.client->angles[0] = ANGLEMOD (current + move);
-}
-