Commit Graph

204 Commits

Author SHA1 Message Date
adelikat 599c6a9fa5 virtual pad support for GB 3x and 4x 2020-05-05 16:43:22 -05:00
adelikat d4c8615e95 remove unused usings and other redundancies 2020-04-23 20:33:18 -05:00
adelikat ce17df2b6a DS - fix virtualpad lid buttons 2020-04-07 08:43:52 -05:00
adelikat 96a753324a O2 - add Reset button to virtual pad 2020-04-03 18:08:26 -05:00
adelikat f408bcb2b7 more of the previous commit 2020-03-31 09:30:52 -05:00
adelikat 747501af52 nitpick previous commits - public properties not readonly fields 2020-03-31 09:17:53 -05:00
YoshiRulz 69aa909fc5
Revert previous fix which didn't work and set DisplayName properly
fixup e22c2ae11
2020-03-31 23:42:43 +10:00
YoshiRulz e22c2ae115
Fix ButtonSchema.DisplayName regression 2020-03-31 23:30:06 +10:00
YoshiRulz 9e5e8c2547
Seal PadSchemaControl subclasses 2020-03-31 21:45:27 +10:00
YoshiRulz 3decfa5019
Use inheritance instead of Type for PadSchema controls
* Rename ButtonSchema to PadSchemaControl, create ButtonSchema subclass, rename
AnalogSchema to AnalogStickSchema, and make PadSchemaControl abstract
* Replace switching on PadSchemaControl.Type (enum PadInputType) with type
checks
* Refactor and merge VirtualpadTool.CheckPads() into .CreatePads() (it was
easier than just using type checks in the old algorithm)
* Move members from PadSchemaControl to subtypes and cleanup
2020-03-31 21:40:36 +10:00
YoshiRulz 0ba7a5a7df
Rename axis-related types, members, and locals
I left a few methods where they had an equivalent *Bool*() for buttons, and also
left some in TAStudio that get serialised.
2020-03-31 17:29:55 +10:00
adelikat 2f287f5c3c virtualpads - a2600 - implement keyboard controller 2020-03-29 17:42:59 -05:00
adelikat b1911f32a3 virtual pads - fix atari 2600 booster grip button mapping, broken in recent refactors 2020-03-29 17:34:42 -05:00
adelikat 7aa0b08dd5 O2 virtualpad - add keyboard 2020-03-23 14:05:40 -05:00
adelikat 0717878fae Odyssey2 - Virtualpads - cleanup, add Power button 2020-03-23 09:27:11 -05:00
adelikat b52d674959 virtualpads - cleanup 2020-03-22 20:14:09 -05:00
adelikat b2c2b5c362 VirtualPads - Genesis activator - attempt to fix it up, it at least maps to correct buttons now 2020-03-22 20:10:30 -05:00
adelikat 49b57bbb22 Virtualpads - fix up vectrex - add console buttons, fix analog logic 2020-03-22 19:54:19 -05:00
adelikat 59a7b24df9 a7800 virtualpads - cleanup, support unplugged and lightgun options, remove unimplemented paddle controller logic 2020-03-22 17:31:44 -05:00
adelikat f98003f98e virtualpad schema - cleanups 2020-03-22 16:47:33 -05:00
adelikat 1f8171fc9b PadSchema - remove MaxSize as it wasn't being used, rename DefaultSize to just Size 2020-03-22 16:23:01 -05:00
adelikat 808fa1a911 SmsSchema - simplify 2020-03-22 16:16:05 -05:00
adelikat b520211cf2 NesSchema - simplify some 2020-03-22 16:04:45 -05:00
adelikat 00ec0750d0 SnesSchema - remove unused method 2020-03-22 15:58:50 -05:00
adelikat 1b7698aa71 ButtonSchema - simplify UDLR helper methods more 2020-03-22 15:57:43 -05:00
adelikat ec353e163e ButtonSchema - simplify with another overload 2020-03-22 15:15:22 -05:00
adelikat 554e0dcf80 ButtonSchema - simplify more 2020-03-22 15:09:19 -05:00
adelikat d0908053c2 ButtonSchema - simplify 2020-03-22 14:39:12 -05:00
adelikat 7e9ef33d90 ButtonSchema - lock down setting of Name property 2020-03-22 14:36:57 -05:00
adelikat c0ffe0e0e3 ButtonSchema - use overloads more 2020-03-22 14:32:27 -05:00
adelikat 828bc2b9dc ButtonSchema - use overloads more 2020-03-22 14:27:12 -05:00
adelikat 7b6ff18775 ButtonSchema - use more constructor overloads to simplify 2020-03-22 14:13:01 -05:00
adelikat 90a03f3f6a ButtonSchema - lock down Location setting 2020-03-22 13:21:38 -05:00
adelikat 1c9260f7cf ButtonSchema - use name overload more 2020-03-22 13:16:30 -05:00
adelikat 5f24a07fc9 add ButtonSchema overload with name, and use it in places 2020-03-22 12:56:00 -05:00
adelikat 0344b0affb make PadSchema.IsConsole not settable, force the use of inheritance 2020-03-22 12:37:28 -05:00
adelikat ddaa6fab36 rename FloatSingle -> SingleFloat 2020-03-22 12:19:40 -05:00
adelikat ec36ed6206 ButtonSchema - make Type not directly settable and force the use of inheritance to set it 2020-03-22 12:18:47 -05:00
adelikat 1f63228061 C64 virtualpad schema - simplify 2020-03-22 11:41:48 -05:00
adelikat 2560def438 Virtual Pad - ButtonSchema - make location constructor the only option since location is always required, change param order on Directional helper methods for consistency 2020-03-21 22:24:06 -05:00
adelikat b70cfebd1d virtualpad schema - make a ButtonSchema constructor that takes in coordinates, reduces a lot of boilerplate, wire it up to a few schemas 2020-03-21 19:09:02 -05:00
adelikat a52c46339e VirtualPad Schema - add some helper methods for creating directional pad buttons, since those are so common 2020-03-21 18:12:26 -05:00
adelikat 4476cc53af VirtualPads - unnest ButtonScehma and PadInputType 2020-03-21 18:12:26 -05:00
adelikat 0ecc1e8023 VirtualPad Schema - default to type Button, and remove now redundant setting of this value 2020-03-21 16:10:01 -05:00
adelikat c1e2f6afe5 VirtualPad Schema - don't show display name if icon is preset, default to Name if displayName is not present (and no icon). Delete a lot of now redundant DisplayName assignments 2020-03-21 15:22:30 -05:00
adelikat 6f84582aa5 virtualPad cleanups 2020-03-21 15:22:30 -05:00
adelikat 020db9bfe3 DS virtual pad 2020-03-21 14:29:45 -05:00
YoshiRulz e12b5d8137
Refactor FloatRange creation and usage
effectively resolves #1200
* Replaced floats in FloatRange with ints (would have used shorts but
SubGBHawk/SubNesHawk use an axis to hack in cycle count or something), added
both Range<int> and Range<float> auto-properties
* Added bool field IsReversed to FloatRange
* Added enum AxisPairOrientation and factory method using it
* Cleaned up usages of FloatRange fields and properties
* Added new properties to PadSchema.ButtonSchema for type
PadInputType.AnalogStick (to hold the two FloatRanges) and used
ControllerDefinitions from cores to dedup these ranges in the schemata
* Made VirtualPadAnalogStick work properly: both the direction and bounds are
correctly set from the controller schemata, the polar conversion measures angles
consistently (though I think it might not work outside -128..127 e.g. for PSX),
and I didn't break the sensitivity override, plus negative percentages might
work now but I didn't allow those
* Renamed FloatRange to AxisRange, but did not rename related symbols
2020-03-14 20:47:45 +10:00
adelikat 9584ff1f53 use switch expressions in some various places in EmuHawk, and some other simplifications 2020-03-04 20:18:43 -06:00
adelikat dedd618db4 subneshawk - delete a bunch of code by using the underlying core for services, cleanup, and implement some services that were missing 2020-02-18 13:19:17 -06:00