1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-13 20:33:35 +08:00
Commit Graph

13 Commits

  • Update lots of packages (#36996)
    It's been a while.
    
    Notes:
    
    - `SharpCompress` usages changed a bit. Manually adjusted these, mostly
    just renames or adjusted parameters.
    - nUnit 3 -> 4 migrated using
    https://gist.github.com/peppy/07994386d793a117350cb5f24b156585. there's
    a mode in this script to update to the newer `Assert.That` syntax but it
    requires fixes and couldn't really be bothered.
    - DeepEqual nuked as the only usage was on a disabled test. The reason
    it's disabled has been merged upstream, but it's failing for other
    (realm) reasons which I don't think is worthwhile to investigate for
    now.
    - This bumps Moq. I think the author is back in a sensible headspace and
    the new version has the stupid shit removed, so probably okay? Nice to
    be on a level playing field with packages for once in a long time.
    - Automapper is silly, but we've discussed this elsewhere.
    - `TestRealmKeyBindingStore` failures are a wildcard, but fixed by using
    a more standardised testing method. Dunno why, don't care.
    
    ---------
    
    Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
  • Ignore more potentially incorrect data from BASS
    This is still a workaround but arguably it's something we could leave in
    place without much loss. I think this at least feels better than the
    previous code.
    
    Notably, you could argue the test coverage of the fail case is lower
    since made it implicit that all tests will avoid the "backwards seek"
    detections.  But we never really had tests correctly- fail on the original
    so I don't see any loss of value.
  • Refactor hit windows class structure to reduce rigidity
    This change pulls back a significant degree of overspecialisation and
    rigidity in the class structure of `HitWindows` to make subsequent
    changes to hit windows, whose purpose is to improve replay playback
    accuracy, possible to do cleanly.
    
    Notably:
    
    - `HitWindows` is full abstract now. In a few use cases, and as a
      reference for ruleset implementors, `DefaultHitWindows` is provided as
      a separate class instead.
    
      This fixes the weirdness wherein `HitWindows` always declared 6 fields
      for result types but some of them would never be set to a non-zero
      value or read.
    
    - `HitWindow.GetRanges()` is deleted because it is overspecialised and
      prevents being able to adjust hitwindows by ±0.5ms cleanly which will
      be required later.
    
      The fallout of this is that the assertion that used `GetRanges()` in
      the `HitWindows` ctor must use something else now, and the closest
      thing to it was `GetAllAvailableWindows()`, which didn't return
      the miss window - so I made it return the miss window and fixed the
      one consumer that didn't want it (bar hit error meter) to skip it.
    
    - Diff also contains some clean-up around `DifficultyRange` to unify
      handling of it.
  • Add messages to all InvalidOperationExceptions
    Without this, they can be very non-descript and hard to track down