NotReaper icon indicating copy to clipboard operation
NotReaper copied to clipboard

Error Checker

Open aggrogahu opened this issue 6 years ago • 1 comments

Error Checker function that parses a cues file and finds errors in the map, such as chain link nodes that don't have a chain start, targets with invalid hitsounds or tickLengths, etc.

Can be extended to give warnings on targets that go against good practice, such as low single melees. Or for following lower difficulty guidelines, such as no slotted notes for Standard, etc.

Errors:

  • [x] headless chains
  • [x] invalid hitsound
  • [x] targets occupying same pitch at same time
  • [x] targets of the same color occurring at the same time
  • [ ] no untraceable chains
  • [x] no chains slower than eighth note rhythm

General

  • [x] low solo melees
  • [x] melees with non-melee hitsound
  • [x] insufficient break between a sustain end and the next target on the same hand*
  • [x] insufficient break between a chain end and the next target on the same hand*

*value for these should be configurable, default being 1 full beat.

Advanced warnings:

  • [x] no simultaneous targets more than 4 spaces apart
  • [x] no more than 3 consecutive 16th notes
  • [x] slot notes need at least 2 beats of lead-in time

Standard warnings:

  • [x] no slot targets
  • [x] no simultaneous melee + shot target
  • [x] no simultaneous targets more than 3 spaces apart
  • [x] no more than 2 consecutive 8th notes
  • [x] no consecutive 8th notes on one hand
  • [x] no other targets allowed during the duration of a chain
  • [x] melees can't be faster than 1/4 note
  • [x] targets that are less than a half note from each other cannot be more than 3 grid spaces apart
  • [ ] no hand crossing with simultaneous targets
  • [ ] no hand crossing with sustains
  • [x] chains need at least 2 beats of lead-in time
  • [x] chains need at least 2 beats of rest afterwards if next target is not also a chain
  • [x] melees need at least 2 beats of rest afterwards if next target is not also a melee

Beginner warnings:

  • [x] no chains
  • [x] no melees
  • [ ] changing between hands need at least a measure of lead-in time
  • [ ] simultaneous targets need at least a measure of lead-in time
  • [ ] simultaneous targets need at least 2 beats of rest afterwards if next target is not also a simultaneous target
  • [x] no more than 2 consecutive 1/4 notes (most targets should be on 1/2 notes)
  • [ ] no more than 3 grid spaces between ANY targets

Future iterations can have links with each error and warning that jump to the offending targets in editor.

aggrogahu avatar Oct 22 '19 22:10 aggrogahu

I actually started working on this, though I'm super slow at programming, so if someone else feels called to tackle it, I can push what I have as a branch and someone else can take over.

aggrogahu avatar Oct 22 '19 22:10 aggrogahu