diff --git a/src/reminder/event.rs b/src/reminder/event.rs index 171ac36..2d82674 100644 --- a/src/reminder/event.rs +++ b/src/reminder/event.rs @@ -26,12 +26,10 @@ impl Reminder { /// Handles encounter target change. pub fn change_encounter(&mut self, target_id: usize, time: u64) { - // only change id, otherwise start as new encounter - // pending check will be handled later - if let Some(encounter) = &mut self.encounter { - encounter.target_id = target_id; - } else { - self.start_encounter(target_id, time); + // only change id if pending, otherwise start as new encounter + match &mut self.encounter { + Some(encounter) if encounter.pending_check => encounter.target_id = target_id, + _ => self.start_encounter(target_id, time), } } diff --git a/src/reminder/mod.rs b/src/reminder/mod.rs index c0c3aeb..120c54e 100644 --- a/src/reminder/mod.rs +++ b/src/reminder/mod.rs @@ -83,7 +83,7 @@ struct Encounter { /// Id of the encounter target. pub target_id: usize, - /// Time the encounter started. + /// Time the encounter started (or target changed). pub start_time: u64, /// Whether there is a pending check for the encounter.