1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-18 03:05:10 +08:00
Commit Graph

162 Commits

Author SHA1 Message Date
tsrk
208e94e9be
style(editor/checks): add type nullability for Stream 2023-08-24 21:33:54 +02:00
tsrk
df55a2f683
style(editor/checks): fix inconsistent argument names 2023-08-24 21:31:28 +02:00
tsrk
a885bf6ebf
feat(editor/checks): check for delayed hitsounds
I really just borrowed the implementation from MapsetVerifier
2023-08-24 21:05:40 +02:00
Dean Herbert
9cfe9164fa Add helper method to get drain length (and rename some usages) 2023-07-25 16:58:41 +09:00
Bartłomiej Dach
699b66be42
Do not reimplement binary sort manually 2023-07-22 17:12:21 +02:00
NiceAesth
fa29c25097 Change check to use binary search 2023-07-20 00:32:35 +03:00
NiceAesth
ff529d9df7 Rename variables, fix check message formatting 2023-07-17 20:48:53 +03:00
NiceAesth
3888471148 Add break length and bounds checks 2023-07-16 23:03:21 +03:00
NiceAesth
1dae1d8f0a Account for break time 2023-07-11 13:40:19 +03:00
NiceAesth
9a2915f423 Add beatmap minimum length checks 2023-07-10 17:29:49 +03:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
a842f79ad4 Refactor IWorkingBeatmap.Background to GetBackground() 2023-06-08 16:19:32 +09:00
OliBomby
ebe1d852f5 remove other usages of hitobject SampleControlPoint 2023-04-25 16:01:43 +02:00
Dean Herbert
5b3d7a8f26 Fix typo in missing-preview-point message 2023-02-02 14:34:59 +09:00
Dean Herbert
c2cde8361a Fix message not reading well 2023-02-02 14:33:41 +09:00
Dean Herbert
3a861fd943 Remove multiple cases of excess braces 2023-02-02 14:28:21 +09:00
cdwcgt
76296eb35a Consistent with BeatmapsetVerifier 2023-02-01 11:52:14 +08:00
cdwcgt
5afb733fb2
change IssueTemplatePreviewTimeConflict's text 2023-01-23 15:26:28 +09:00
cdwcgt
e5eab72aeb
add check for preview time setting 2023-01-19 01:08:37 +09:00
andy840119
a1a9238bd1 Use empty string instead of null because issue template not accept null. 2022-10-30 16:31:07 +08:00
andy840119
505ec800da File name should be nullable. 2022-10-30 16:29:54 +08:00
andy840119
db48a57fa7 Remove nullable disable annotation in some checks class. 2022-10-30 16:28:49 +08:00
andy840119
24c27e62f6 Remove nullable disable annotation in the issue and issue template-related class. 2022-10-30 16:25:15 +08:00
Dean Herbert
ac99c1ad69 Migrate the majority of existing file lookups to use new extension methods 2022-08-10 16:01:16 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +09:00
Dean Herbert
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Naxesss
b888185799 Properly dispose of Stream in bg quality check 2021-11-10 05:06:11 +01:00
Dean Herbert
e43d91ad5d Fix another case of incorrect null checking in editor verification processing 2021-11-04 15:18:10 +09:00
Dean Herbert
1e73b09e57 Fix another couple of cases of incorrect string null/empty checking 2021-11-04 14:22:28 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Bartłomiej Dach
c7db286b94
Merge branch 'master' into file-sanity-checks 2021-10-14 00:17:29 +02:00
Dean Herbert
82f7f99f37 Refactor to use scoped using (and also correctly dispose TagLib portion) 2021-10-12 10:46:26 +09:00
Naxesss
f2f97602f2 Dispose of video resource later
We need the Stream to stay open here because `StreamFileAbstraction` uses it later in the block.
2021-10-12 00:40:39 +02:00
Naxesss
47b4d03145 Dispose of Streams when used 2021-10-12 00:13:38 +02:00
Naxesss
ce69dd3588 Use Prescan flag for audio length check 2021-10-11 23:57:23 +02:00
Naxesss
8f093b9a11 Use TagLib instead of ManagedBass 2021-10-11 13:56:26 +02:00
Naxesss
f0cd18a721 Only check each video file once 2021-10-11 13:55:50 +02:00
Naxesss
6aa054b5fa Change to non-BASS error template 2021-10-11 13:53:23 +02:00
Naxess
6da2a3d51f Add zero-length objects check and tests 2021-07-13 10:50:11 +02:00
Naxess
dc4285582b Fix misplaced "f" in issue message 2021-07-13 06:07:04 +02:00
Naxess
c8f58cbf6c Add audio in video check and tests 2021-07-13 04:17:41 +02:00
Naxess
a4a1919842 Add too short audio files check and tests 2021-07-13 03:46:45 +02:00
Naxess
0a8fd01b99 Add zero byte check and tests 2021-07-13 03:45:21 +02:00
Naxess
9f9e96ce9e Add check for spanDuration <= 0 prior to division 2021-06-27 15:40:09 +02:00
Naxess
a4a5325b73 Improve acceptable difference for repeat edges
Likelihood that `spanDuration` is greater than E+7 is quite low in any realistic case, so this should work fine.
2021-06-27 15:39:31 +02:00
Naxess
4cfa0ae5ec Improve precision for repeat edges 2021-06-27 03:26:35 +02:00
Naxess
2cd7eda3c4 Add "or equal to" to volume threshold xmldocs 2021-06-27 02:30:12 +02:00
Naxess
0c0fd291d9 Order hitobjects by endtime 2021-06-27 01:25:03 +02:00
Naxess
4796b1b208 Use local variables for hasHitsound & couldHaveHitsound 2021-06-27 00:04:30 +02:00
Naxess
5bc08ebadb Rename hasHitsounds -> mapHasHitsounds 2021-06-26 23:49:25 +02:00
Naxess
d29e6f4695 Add negligible template to PossibleTemplates 2021-06-26 23:49:06 +02:00
Naxess
1913084342 Use HitSampleInfo.AllAdditions instead of new list 2021-06-26 23:48:28 +02:00
Naxess
f78cc9397e Factor out edge type logic 2021-06-26 20:45:31 +02:00
Naxess
51147405c5 Make || and && priority explicit 2021-06-26 20:44:39 +02:00
Naxess
4b436b774d Add few hitsounds check 2021-06-26 19:20:46 +02:00
Naxess
d8117fa730 Add muted objects check 2021-06-26 19:20:34 +02:00
Dean Herbert
fcb226bd20 Add local variable for regular access to HitObjects 2021-05-14 16:23:45 +09:00
Naxess
19800f5f7f Move IBeatmap arg into context 2021-05-13 11:24:22 +02:00
Naxess
b7bc42e0d3 Rename "playableBeatmap" check arg to "beatmap"
The working beatmap is now in the context, so it's easier to distinguish beatmap type, hence no need for this prefix.
2021-05-12 02:34:16 +02:00
Naxess
c13b93e6f1 Replace IWorkingBeatmap arg with BeatmapVerifierContext in checks
This simplifies passing of contextual information by enabling addition without needing to refactor lots of classes.

See next commit for example.
2021-05-12 02:29:18 +02:00
Naxess
75adec57eb Remove negligible default hidden TODO 2021-05-12 01:31:16 +02:00
Dean Herbert
f3c7694eeb Rename methods to match generally how these find-methods are named elsewhere 2021-04-28 16:57:52 +09:00
Dean Herbert
48d6c9ac4b Move snap/divisor helper methods to inside ControlPointInfo 2021-04-28 16:47:30 +09:00
Naxess
200352b750 Rename unsnap check templates 2021-04-27 13:56:05 +02:00
Naxess
7a6e9e5070 Change category of unsnap check to timing
Makes more sense, as this is typically the result of timing changes.
2021-04-27 02:32:57 +02:00
Naxess
9e49ecb573 Remove unused virtual keywords
Added these in a previous iteration, where I had the mania variant inherit this class.

No longer necessary as `IHasColumn` was used to make this check more generic.
2021-04-27 02:23:06 +02:00
Naxess
a3c1b1fd52 Fix accessibility of areConcurrent 2021-04-27 01:24:38 +02:00
Naxess
ce258febf6 Rename CheckUnsnaps -> CheckUnsnappedObjects
Will potentially have `CheckUnsnappedKiai` or similar later, so this is worth specifying.

Also consistent with `CheckConcurrentObjects`, which will likely have a `CheckConcurrentLines` later.
2021-04-26 20:32:44 +02:00
Naxess
a3570e18dd Add concurrent objects check
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.

We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Naxess
9b9c473616 Remove redundant string formatting 2021-04-26 16:17:38 +02:00
Naxess
7b9ed924be Rename snapping methods
Further separates them from `IBeatSnapProvider`'s `SnapTime`, and groups them together more, to prevent confusion between the two interfaces.

Also changes the xmldoc of the reference time to that of `IBeatSnapProvider` for consistency.
2021-04-26 16:07:30 +02:00
Naxess
049e42fa85 Move snapping responsibility to IBeatmap
Seems `EditorBeatmap` already implements a different kind of `SnapTime` from `IBeatSnapProvider`, so method names here aren't great.

This is very similar to what https://github.com/ppy/osu/pull/12558 is doing, so may need to do some duplicate resolution later, especially surrounding `ClosestBeatSnapDivisor`.

Worth noting that this change makes 1/7, 1/5, etc unsupported for now, as we now rely on `BindableBeatDivisor.VALID_DIVISORS`.
2021-04-26 05:07:24 +02:00
Naxess
6fd77e536d Add unsnap check 2021-04-25 05:34:54 +02:00
Naxess
4510e795e1 Fix category of audio quality check 2021-04-20 02:13:26 +02:00
Naxess
c633f15565 Add audio quality check 2021-04-20 01:36:03 +02:00
Naxess
40ae856dfc Show 2 decimals for background filesize 2021-04-20 01:34:05 +02:00
Naxess
14c626ffcb Use the playable beatmap for file presence checks 2021-04-20 01:33:19 +02:00
Naxess
8656176ab8 Add the playable beatmap as check argument
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.

So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.

This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
Naxess
9a69ca34a6 Add audio presence check 2021-04-18 02:07:57 +02:00
Naxess
010720de74 Factor out general file presence checking
This allows us to use the same method of checking for other files that should exist, for example the audio file.

By using the same method, they all share test cases too.
2021-04-18 02:07:33 +02:00
Naxess
56bf49c85c Take IWorkingBeatmap instead of WorkingBeatmap
This makes testing much easier, and allows for checking of any class deriving from that interface, including `WorkingBeatmap`.
2021-04-18 01:21:20 +02:00
Naxess
abf512532e Clean up check logic
Makes use of the new `BeatmapSet.GetPathForFile` method and removes dependency on `WorkingBeatmap` specifically, allowing us to switch to `IWorkingBeatmap` later.
2021-04-18 01:19:25 +02:00
Naxess
cb41c89935 Don't return low res and too low res at the same time 2021-04-17 20:10:07 +02:00
Naxess
62c54e00cb Add check for background resolution and filesize 2021-04-17 18:01:04 +02:00
Naxess
448574e7e6 Use WorkingBeatmap instead of IBeatmap
This lets us access things like the background, track, etc. which are necessary for quality and filesize checks.

Also improves the structure of the `CheckBackgroundTest` class in the process.
2021-04-17 17:33:53 +02:00
Dean Herbert
cb4f64133e Add xmldoc to interfaces 2021-04-13 23:30:20 +09:00
Naxess
69da804f81 Add missing period 2021-04-13 13:57:56 +02:00
Naxess
6d3f9fa9ce Use is class instead of Equals with template index
Ensures ordering of `PossibleTemplates` does not affect tests.
2021-04-13 02:29:25 +02:00
Naxess
d8088777ea Add Equals method to IssueTemplate
This will be useful in tests.
2021-04-13 01:21:34 +02:00
Naxess
19a154ddf1 Rename checkOrigin -> check
More consistent with `Issue.ctor`'s "template".
2021-04-12 17:28:12 +02:00
Naxess
bb720c23a0 Remove check ctors and locals 2021-04-12 17:12:37 +02:00
Dean Herbert
62c1812282 Remove redundant parameter naming 2021-04-12 23:37:47 +09:00
Dean Herbert
36bd235021 Move nested classes to bottom of file 2021-04-12 23:36:10 +09:00
Naxess
6d50d01186 Make IssueTemplate.Check readonly 2021-04-12 16:23:05 +02:00
Naxess
caaaba5950 Rename Check -> ICheck 2021-04-12 16:20:53 +02:00
Naxess
008dbc7dd6 Reverse IssueType ordering
Reversed both in the enum and where it's displayed, so ends up the same in the end.
2021-04-12 15:49:13 +02:00