CentreActor matching

This commit is contained in:
Dethrace Labs 2026-02-10 09:39:44 +13:00
parent 96d9515807
commit aa75ff388a
1 changed files with 11 additions and 7 deletions

View File

@ -4844,16 +4844,20 @@ void OffsetActor(br_actor* pActor, br_vector3* pOffset) {
// FUNCTION: CARM95 0x00444803
void CentreActor(br_actor* pActor, br_vector3* pOffset) {
if (pActor->model == NULL) {
BrVector3Set(pOffset, 0.f, 0.f, 0.f);
} else if (gKnown_actor == gLast_actor) {
BrVector3Scale(pOffset, &gActor_centre, -1.f);
if (pActor->model != NULL) {
if (gKnown_actor == gLast_actor) {
BrVector3Scale(pOffset, &gActor_centre, -1.f);
} else {
pOffset->v[0] = (pActor->model->bounds.max.v[0] + pActor->model->bounds.min.v[0]) / -2.0f;
pOffset->v[1] = (pActor->model->bounds.max.v[1] + pActor->model->bounds.min.v[1]) / -2.0f;
pOffset->v[2] = (pActor->model->bounds.max.v[2] + pActor->model->bounds.min.v[2]) / -2.0f;
}
} else {
BrVector3Add(pOffset, &pActor->model->bounds.max, &pActor->model->bounds.min);
BrVector3Scale(pOffset, pOffset, -2.f);
BrVector3Set(pOffset, 0.f, 0.f, 0.f);
}
DRActorEnumRecurse(pActor, (br_actor_enum_cbfn*)OffsetModel, pOffset);
BrVector3Scale(pOffset, pOffset, -1.f);
BrVector3Negate(pOffset, pOffset);
}
// IDA: void __cdecl SnapAccToVertical()