MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / zEntHangable_FollowUpdate

Function zEntHangable_FollowUpdate

src/SB/Game/zEntHangable.cpp:469–521  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

467}
468
469void zEntHangable_FollowUpdate(zEntHangable* ent)
470{
471 xVec3* center;
472 xVec3 delta;
473 xVec3 pivot;
474
475 if (ent->follow == NULL)
476 {
477 return;
478 }
479
480 xEntHangableAsset* hang = (xEntHangableAsset *)(&ent->asset[1]);
481
482 center = (xVec3*)(&ent->follow->model->Mat->pos);
483 pivot.x = center->x;
484 pivot.y = center->y + hang->pivotOffset;
485 pivot.z = center->z;
486
487 delta.x = pivot.x - ent->pivot.x;
488 delta.y = pivot.y - ent->pivot.y;
489 delta.z = pivot.z - ent->pivot.z;
490
491 ent->pivot = pivot;
492
493 if (globals.player.HangEnt == ent)
494 {
495 globals.player.HangPivot = pivot;
496 globals.player.ent.model->Mat->pos.x += delta.x;
497 globals.player.ent.model->Mat->pos.y += delta.y;
498 globals.player.ent.model->Mat->pos.z += delta.z;
499 }
500
501 ent->endpos.x += delta.x;
502 ent->endpos.y += delta.y;
503 ent->endpos.z += delta.z;
504
505 center = (xVec3*)(&ent->model->Mat->pos);
506 center->x += delta.x;
507 center = (xVec3*)(&ent->model->Mat->pos);
508 center->y += delta.y;
509 center = (xVec3*)(&ent->model->Mat->pos);
510 center->z += delta.z;
511
512 if (ent->shaggy != NULL)
513 {
514 center = (xVec3*)(&ent->shaggy->model->Mat->pos);
515 center->x += delta.x;
516 center = (xVec3*)(&ent->shaggy->model->Mat->pos);
517 center->y += delta.y;
518 center = (xVec3*)(&ent->shaggy->model->Mat->pos);
519 center->z += delta.z;
520 }
521}
522
523void zEntHangable_SetFollow(zEntHangable* ent, zEnt* b)
524{

Callers 2

zEntHangable_UpdateFunction · 0.70
zEntHangable_SetFollowFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected