1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 17:54:15 +00:00

Document new "Epona Push" bug (#941)

* add comment

* missed one

* remove dupes and change wording
This commit is contained in:
fig02 2021-09-04 09:45:47 -04:00 committed by GitHub
parent 81830a6e8b
commit 3de7c21196
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 0 deletions

View file

@ -3783,6 +3783,11 @@ void EnHorse_SkinCallback1(Actor* thisx, GlobalContext* globalCtx, PSkinAwb* ski
this->jntSph.elements[i].dim.modelSphere.radius * this->jntSph.elements[i].dim.scale; this->jntSph.elements[i].dim.modelSphere.radius * this->jntSph.elements[i].dim.scale;
} }
//! @bug Setting colliders in a draw function allows for duplicate entries to be added to their respective lists
//! under certain conditions, like when pausing and unpausing the game.
//! Actors will draw for a couple of frames between the pauses, but some important logic updates will not occur.
//! In the case of OC, this can cause unwanted effects such as a very large amount of displacement being applied to
//! a colliding actor.
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->jntSph.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->jntSph.base);
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->jntSph.base); CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->jntSph.base);
} }

View file

@ -318,6 +318,8 @@ void func_80A68FA8(Actor* thisx, GlobalContext* globalCtx, PSkinAwb* skin) {
this->colliderHead.elements[index].dim.worldSphere.radius = this->colliderHead.elements[index].dim.worldSphere.radius =
this->colliderHead.elements[index].dim.modelSphere.radius * this->colliderHead.elements[index].dim.scale; this->colliderHead.elements[index].dim.modelSphere.radius * this->colliderHead.elements[index].dim.scale;
} }
//! @bug see relevant comment in `EnHorse_SkinCallback1`
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliderHead.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliderHead.base);
} }

View file

@ -598,6 +598,7 @@ void func_80A6ABF8(Actor* thisx, GlobalContext* globalCtx, PSkinAwb* skin) {
this->headCollider.elements[i].dim.modelSphere.radius * this->headCollider.elements[i].dim.scale; this->headCollider.elements[i].dim.modelSphere.radius * this->headCollider.elements[i].dim.scale;
} }
//! @bug see relevant comment in `EnHorse_SkinCallback1`
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->headCollider.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->headCollider.base);
} }

View file

@ -607,6 +607,7 @@ void func_80A6CAFC(Actor* thisx, GlobalContext* globalCtx, PSkinAwb* skin) {
this->headCollider.elements[i].dim.modelSphere.radius * this->headCollider.elements[i].dim.scale; this->headCollider.elements[i].dim.modelSphere.radius * this->headCollider.elements[i].dim.scale;
} }
//! @bug see relevant comment in `EnHorse_SkinCallback1`
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->headCollider.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->headCollider.base);
} }

View file

@ -262,6 +262,8 @@ void func_80A6DFD4(Actor* thisx, GlobalContext* globalCtx, PSkinAwb* skin) {
this->colliderSphere.elements[i].dim.worldSphere.radius = this->colliderSphere.elements[i].dim.worldSphere.radius =
this->colliderSphere.elements[i].dim.modelSphere.radius * this->colliderSphere.elements[i].dim.scale; this->colliderSphere.elements[i].dim.modelSphere.radius * this->colliderSphere.elements[i].dim.scale;
} }
//! @bug see relevant comment in `EnHorse_SkinCallback1`
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliderSphere.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliderSphere.base);
} }