v0.4.2: Unit Tested, Panda Approved
The last couple releases didn't go so well, did they? lol
After drums got entirely broken in YARG for the previous couple versions, and my fixes in v0.4.1 didn't do anything to help, I decided to set up a suite of unit tests for the package so I didn't have to scrutinize every last line of code by hand.
A lot of issues were found and fixed this way, and any future issues of this caliber should be caught up-front, rather than having to wait for battle-testing to reveal them for me.
This doesn't mean issues like this can't happen in the future, though. Ironically, the unit tests determined everything to be fine with drums, and some actual debugging revealed it was an issue with the core state translation code.
After fixing that, I also noticed that some of the velocity values on Xbox 360 4-lane drumkit were inverted, which my tests didn't catch since they hook into the same interfaces the state translation does. Just means I need to be vigilant to make sure the definitions are correct lol
Fixed
- The velocity values on PS3/Wii 4-lane drumkits are no longer inverted.
- Pro Guitars no longer forget to assign their digital pedal control.
- 6-fret guitars were using the entirely wrong state layout lol, copy-paste error I missed during review.
- Fixed turntables failing to initialize due to
sbyte
s not being considered integers byInputState.IsIntegerFormat
for some reason. - Fixed turntable platter buttons and Pro Guitar digital pedal not working correctly; private fields in layout structs aren't checked during layout creation it seems.
- Fixed Pro Guitar strumming not registering in the first input event received for one.
- Fixed Pro Keyboard
GetKeyMask
returning an inverted mask (i.e. bit 24 was key 1 rather than bit 0). - Fixed Santroller guitars not having the correct default state value set.
- Fixed various input control extensions not working on devices that use the new state translation infrastructure.
- Fixed yellow/green pad/cymbal velocities on Xbox 360 4-lane drumkits being inverted.
Removed
- The redundant
SoloFretCount
,TouchFretCount
, andEmulatedSoloFretCount
constants onRockBandGuitar
,GuitarHeroGuitar
, andProGuitar
respectively have been removed, in favor of having the oneFiveFretGuitar.FretCount
constant for everything.- The
EmulatedFretCount
constant onProGuitar
remains for convenience, but is otherwise now directly equivalent toFiveFretGuitar.FretCount
.
- The