fix exit elevator rumble

This commit is contained in:
James Lambert 2023-10-18 08:15:24 -06:00
parent 9325512ca4
commit 9f7e15e3fd

View file

@ -195,25 +195,34 @@ int elevatorUpdate(struct Elevator* elevator, struct Player* player) {
} }
} }
if ((elevator->openAmount == 0.0f && shouldBeOpen) || (elevator->openAmount == 1.0f && !shouldBeOpen)) { int isClosed = elevator->openAmount == 0.0f;
int isOpen = elevator->openAmount == 1.0f;
if ((isClosed && shouldBeOpen) || (isOpen && !shouldBeOpen)) {
soundPlayerPlay(soundsElevatorDoor, 1.0f, 0.5f, &elevator->rigidBody.transform.position, &gZeroVec, SoundTypeAll); soundPlayerPlay(soundsElevatorDoor, 1.0f, 0.5f, &elevator->rigidBody.transform.position, &gZeroVec, SoundTypeAll);
if ((elevator->openAmount == 0.0f && shouldBeOpen) && (elevator->flags & ElevatorFlagsHasHadPlayer)){ if ((isClosed && shouldBeOpen) && (elevator->flags & ElevatorFlagsHasHadPlayer)){
soundPlayerPlay(soundsElevatorChime, 1.5f, 0.5f, &elevator->rigidBody.transform.position, &gZeroVec, SoundTypeAll); soundPlayerPlay(soundsElevatorChime, 1.5f, 0.5f, &elevator->rigidBody.transform.position, &gZeroVec, SoundTypeAll);
hudShowSubtitle(&gScene.hud, PORTAL_ELEVATOR_CHIME, SubtitleTypeCaption); hudShowSubtitle(&gScene.hud, PORTAL_ELEVATOR_CHIME, SubtitleTypeCaption);
} }
} }
if ((elevator->flags & ElevatorFlagsIsLocked) && (elevator->openAmount == 0.0f) && (elevator->movingTimer > 0.0f) && !cutscenePreventingMovement){ if ((elevator->flags & ElevatorFlagsIsLocked) && isClosed && (elevator->movingTimer > 0.0f) && !cutscenePreventingMovement){
elevator->movingTimer -= FIXED_DELTA_TIME; elevator->movingTimer -= FIXED_DELTA_TIME;
} }
if ((elevator->flags & ElevatorFlagsIsLocked) && (elevator->openAmount == 0.0f) && !(elevator->flags & ElevatorFlagsMovingSoundPlayed) && (elevator->movingTimer <= 0.0f) && !cutscenePreventingMovement){ if ((elevator->flags & ElevatorFlagsIsLocked) &&
soundPlayerPlay(soundsElevatorMoving, 1.25f, 0.5f, &elevator->rigidBody.transform.position, &gZeroVec, SoundTypeAll); isClosed &&
hudShowSubtitle(&gScene.hud, PORTAL_ELEVATOR_START, SubtitleTypeCaption); !(elevator->flags & ElevatorFlagsMovingSoundPlayed) &&
player->shakeTimer = SHAKE_DURATION; (elevator->movingTimer <= 0.0f) &&
rumblePakClipPlay(&gElevatorRumbleWave); !cutscenePreventingMovement &&
elevator->flags |= ElevatorFlagsMovingSoundPlayed; elevator->targetElevator >= 0) {
soundPlayerPlay(soundsElevatorMoving, 1.25f, 0.5f, &elevator->rigidBody.transform.position, &gZeroVec, SoundTypeAll);
hudShowSubtitle(&gScene.hud, PORTAL_ELEVATOR_START, SubtitleTypeCaption);
player->shakeTimer = SHAKE_DURATION;
rumblePakClipPlay(&gElevatorRumbleWave);
elevator->flags |= ElevatorFlagsMovingSoundPlayed;
} }
elevator->openAmount = mathfMoveTowards(elevator->openAmount, shouldBeOpen ? 1.0f : 0.0f, OPEN_SPEED * FIXED_DELTA_TIME); elevator->openAmount = mathfMoveTowards(elevator->openAmount, shouldBeOpen ? 1.0f : 0.0f, OPEN_SPEED * FIXED_DELTA_TIME);