sorry if the versioning doesnt really make sense, ive been trying to follow semver but i keep messing up
- finally add customizable colors from config file
- turn off kerning in order to fix timer jitter with certain fonts
- increment index variables in loops when ending a run so it doesn't get stuck (i'm stupid)
- move check to save run to after user has closed program
- add comparisons to PB, golds, and empty
- calculate colors for timer based on comparison
- switch comparisons with arrow keys
- change displayed split times with comparison swap
- convert to using run from mist-split-utils
- clean up the code used to open and validate split files on startup
- patch issues with 0-split files
- add font size field in config
- allow user selected config, default to assets/default.mts if none
- create config file if missing
- add separate fields for timer and split font in config struct
- use font paths from config in app.rs
- add configuration file and cfg file parsing
- config file holds last opened run, colors for timer, path to font
- colors dont work yet but they will soon
- custom config not yet selectable
- will be selectable along with new run when context menu is implemented
- properly save golds on run end
- first crates.io published working version
- had to increment version cause i'm stupid
- hopefully patch windows file filtering
- add golds for real
- reset to top of splits on timer reset
- add preliminary golds suppord
- add proper error handling to msf file parsing
- ask to save after rendering last frame (looks much nicer this way)
- on pb, properly update current and pb times and textures of Splits in memory
- only actually save times to chosen file if user agrees to
- fix zero padding, remove extraneous decimals on split times
- require split file input path
- patch issue where all splits would happen instantly if you hold down split key
- add tinyfiledialog dependency
- add yes/no save splits dialog for writing to msf file
- save run on run end not on splits scroll like a fool
- fix highlighting the current split when scrolling
- display the proper time when the run ends
- condense some match patterns
- properly calculate diffs
- tweak color values
- patch color calculation hopefully for the last time
- render diff textures with '+' when behind
- account for pausing in color calculation
- properly clear old textures on timer reset
- add split time diff rendering
- currently no way to handle horizontal resize
- dynamic color might still be wrong unfortunately
- fix dynamic timer color calculation
- now properly uses making up time color and losing time color
- still breaks after a pause, will be fixed in a later patch as pausing isnt horribly common
- use instant everywhere instead of SDL timer
- this reduces the number of u32 -> u128 casts
- also just feels nicer
- massive internal changes to split system
- now uses a wrapper struct for splits to reduce clutter
- no longer requires large numbers of lifetime-dodging kludges
- properly implemented
Split
struct field accessing
- Basic speedrun timing functionality
- Start offset support
- Read run from split file (file currently locked to "run.msf" in directory where executable is stored)
- If completed run is a PB, save run data to split file
- Change timer color according to run status (not sure if this all works properly)
- Spacebar to start, split, stop; Enter to pause/unpause; R key to reset timer
- Convert time to 30fps values on stop (non-configurable)
- Doesnt crash when you resize the window vertically (yay!) (horizontal resizes probably still bad)