disabled movement of button if deactivated to match behavior in Portal

This commit is contained in:
Deconimus 2024-02-28 21:54:42 +01:00
parent 20b253ec33
commit e3206fdf6e

View file

@ -101,10 +101,9 @@ void buttonInit(struct Button* button, struct ButtonDefinition* definition) {
void buttonUpdate(struct Button* button) {
struct ContactManifold* manifold = contactSolverNextManifold(&gContactSolver, &button->collisionObject, NULL);
int shouldPress = 0;
int deactivated = signalsRead(button->deactivateSignalIndex);
if (!deactivated) {
int shouldPress = 0;
while (manifold) {
struct CollisionObject* other = manifold->shapeA == &button->collisionObject ? manifold->shapeB : manifold->shapeA;
@ -126,7 +125,6 @@ void buttonUpdate(struct Button* button) {
button->collisionObject.flags &= ~COLLISION_OBJECT_PLAYER_STANDING;
shouldPress = 1;
}
}
struct Vector3 targetPos = button->originalPos;
@ -161,5 +159,5 @@ void buttonUpdate(struct Button* button) {
vector3MoveTowards(&button->rigidBody.transform.position, &targetPos, BUTTON_MOVE_VELOCTY * FIXED_DELTA_TIME, &button->rigidBody.transform.position);
collisionObjectUpdateBB(&button->collisionObject);
}
}
}