Big bad issue list
Dumping them here instead of making a bunch to manually mark off each time.
- Bad/Inconsistent names.
- Feature models are hot garbage.
- Delta models are weird.
- Namespace names are kind of bad.
- Somewhat inconstant use of
public,internal, andprivate. - Excessive dependence, not very portable.
- OCR not implemented (but logic is available).
- Geometry needs to be finished and separated into its own library. Add logic into it that's coded into the project.
- Re-implement Screens & Anchors. Currently not a big issue since most games don't need those features.
- Scanner should support scanning windows. New classes with an abstract one will be necessary.
- Swap ImageMagick for GraphicsMagick to boost performance, probably.
- Finish implementing TrueCropGeometry.
- Clone frame with TrueCropGeometry to save CPU.
- Still lots of unhandled exceptions.
- Not all of the handled exceptions are sent to the Event Log.
- Actually do something with benchmarks. Right now they just waste CPU (albeit minor).
- Let user set the framerate to reduce jitter problems.
- Let scripters set the game's framerate for rounding.
- Round received frames to the user's framerate, then to the game's framerate. Note jitter/desyncs.
- More duplicate frame methods for scripting.
- Need a Designer UI for helping with making new profiles.
- Add offsetting for splitting (requires a core update)
- Add aliasing in scripting for simplicity.
- Review VASL/ASL differences.
- ScannerUI not very complete (bad layout, no auto-fit tools, ~~can't click image to select region~~, ~~doesn't preview crop/feature regions~~).
- Script settings are still garbage.
- Game Versions still not implemented.
- Profiles should remember the version they were built with, for legacy support.
- Delta numbers should be standardized? (e.g. PeakAbsolute is 0-1, PeakSignalToNoiseRatio is 0-inf, Absolute is 0-PixelCount)
- Some extensions and utilities are terrible.
- Scanner still freaks out if it tries to read OBS-Camera when OBS isn't up.
- Pass frame bitmaps though CompiledFeatures instead?
- Separate scanner and scanner settings?
And, of course, who could forget all the arbitrary bugs that make the UI freeze or crash LiveSplit entirely? Threading is responsible for most of them.
For the excessive dependencies, can we enable VLC as the source of the video stream? Might help if when moving to new splits and setting up an autosplitter if we can use a video of a PB to to test the splitting and to retime our runs if the run is still along the same route.
Poor wording on my part. "excessive dependencies" meant that the code is somewhat lasagna and not portable. But it would be nice to remove the external dependencies by moving the code that's used into the component itself.
For the excessive dependencies, can we enable VLC as the source of the video stream?
I use a video source on OBS to test profiles for streams. A separate program is planned for retroactively scanning videos that runs much faster.
for use of internal, private, and public, just adding a link to this: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers
should help making sure we make the right choice on what to use in each struct/class