392 edict_t *check, *block;
399 for (i = 0 ; i < 3 ; i++) {
401 temp = move[i] * 8.0;
406 move[i] = 0.125 * (
int)temp;
410 for (i = 0 ; i < 3 ; i++) {
411 mins[i] = pusher->absmin[i] + move[i];
412 maxs[i] = pusher->absmax[i] + move[i];
423 #if USE_SMOOTH_DELTA_ANGLES
425 pushed_p->deltayaw = pusher->client->ps.pmove.delta_angles[YAW];
430 VectorAdd(pusher->s.origin, move, pusher->s.origin);
431 VectorAdd(pusher->s.angles, amove, pusher->s.angles);
432 gi.linkentity(pusher);
436 for (e = 1; e <
globals.num_edicts; e++, check++) {
445 if (!check->area.prev)
449 if (check->groundentity != pusher) {
451 if (check->absmin[0] >= maxs[0]
452 || check->absmin[1] >= maxs[1]
453 || check->absmin[2] >= maxs[2]
454 || check->absmax[0] <= mins[0]
455 || check->absmax[1] <= mins[1]
456 || check->absmax[2] <= mins[2])
464 if ((pusher->movetype ==
MOVETYPE_PUSH) || (check->groundentity == pusher)) {
469 #if USE_SMOOTH_DELTA_ANGLES
471 pushed_p->deltayaw = check->client->ps.pmove.delta_angles[YAW];
476 VectorAdd(check->s.origin, move, check->s.origin);
477 #if USE_SMOOTH_DELTA_ANGLES
481 check->client->ps.pmove.delta_angles[YAW] += ANGLE2SHORT(amove[YAW]);
486 VectorSubtract(check->s.origin, pusher->s.origin, org);
487 org2[0] = DotProduct(org,
forward);
488 org2[1] = -DotProduct(org,
right);
489 org2[2] = DotProduct(org,
up);
490 VectorSubtract(org2, org, move2);
491 VectorAdd(check->s.origin, move2, check->s.origin);
494 if (check->groundentity != pusher)
495 check->groundentity = NULL;
500 gi.linkentity(check);
508 VectorSubtract(check->s.origin, move, check->s.origin);
525 #if USE_SMOOTH_DELTA_ANGLES
526 if (p->
ent->client) {
527 p->
ent->client->ps.pmove.delta_angles[YAW] = p->deltayaw;
530 gi.linkentity(p->
ent);