diff --git a/src/Engine/Graphics/Indoor.cpp b/src/Engine/Graphics/Indoor.cpp index 8606a0b07911..6f6ca0e1a026 100644 --- a/src/Engine/Graphics/Indoor.cpp +++ b/src/Engine/Graphics/Indoor.cpp @@ -1821,7 +1821,6 @@ void switchDoorAnimation(unsigned int uDoorID, DoorAction a2) { } BLVDoor &door = *pos; - DoorState old_state = door.uState; if (a2 == DOOR_ACTION_TRIGGER) { if (door.uState == DOOR_CLOSING || door.uState == DOOR_OPENING) @@ -1839,24 +1838,24 @@ void switchDoorAnimation(unsigned int uDoorID, DoorAction a2) { if (door.uState == DOOR_CLOSED || door.uState == DOOR_CLOSING) return; - door.uState = DOOR_CLOSING; - if (old_state == DOOR_OPEN) { + if (door.uState == DOOR_OPEN) { door.uTimeSinceTriggered = Duration::zero(); } else if (door.uTimeSinceTriggered != Duration::fromTicks(15360)) { door.uTimeSinceTriggered = Duration::fromTicks( (door.uMoveLength << 7) / door.uOpenSpeed - ((signed int) (door.uTimeSinceTriggered.ticks() * door.uCloseSpeed) / 128 << 7) / door.uOpenSpeed); } + door.uState = DOOR_CLOSING; } else if (a2 == DOOR_ACTION_OPEN) { if (door.uState == DOOR_OPEN || door.uState == DOOR_OPENING) return; - door.uState = DOOR_OPENING; - if (old_state == DOOR_CLOSED) { + if (door.uState == DOOR_CLOSED) { door.uTimeSinceTriggered = Duration::zero(); } else if (door.uTimeSinceTriggered != Duration::fromTicks(15360)) { door.uTimeSinceTriggered = Duration::fromTicks( (door.uMoveLength << 7) / door.uCloseSpeed - ((signed int) (door.uTimeSinceTriggered.ticks() * door.uOpenSpeed) / 128 << 7) / door.uCloseSpeed); } + door.uState = DOOR_OPENING; } }