Commit Graph

50 Commits

Author SHA1 Message Date
YoshiRulz 69aa909fc5
Revert previous fix which didn't work and set DisplayName properly
fixup e22c2ae11
2020-03-31 23:42:43 +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 7f2e1438ba VirtualPads - style console pads differently 2020-03-22 19:34:04 -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 ddaa6fab36 rename FloatSingle -> SingleFloat 2020-03-22 12:19:40 -05:00
adelikat 4476cc53af VirtualPads - unnest ButtonScehma and PadInputType 2020-03-21 18:12:26 -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
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 d65092e967 Misc cleanups in tool dialogs - mostly the use of expression body (C#6/C#7isms) 2019-10-29 09:27:56 -05:00
James Groom 90b0574bc3
Remove unnecessary calls to ToList (e.g. in foreach)
squashed PR #1591
2019-10-13 15:50:57 +00:00
zeromus cc33617f74 fix crash in snes virtualpad when mouse is used 2017-07-09 11:40:55 -05:00
adelikat d18a512db8 Saturn - virtualpad support for 3d controller, however, analog stick needs some fixes to support the large analog range of the stick 2017-06-11 14:45:18 -05:00
adelikat ba4af238b7 VirtualPads - PSX NeGcon support, also slider controls now support vertical orientation 2017-04-29 14:47:51 -05:00
Hathor86 f145f3cc68 Polar Coord
- Add polar coordinates to VirtualPadAnalogStick
- Update N64 pad Schema as VirtualPadAnalogStick is a bit larger
- Add Clamp method to NumberExtensions (allows a IComparable<T> value to be restriced between 2 specified other values)
2016-01-23 22:56:41 +01:00
zeromus 0787a3be47 rework virtual pad analog widget to support n64 and psx simultaneously 2015-07-19 21:46:52 -05:00
jdpurcell 260176e458 Fix NES Zapper target being 210 pixels tall instead of 240.
Fix max X/Y value of target being high by 1.
2015-01-01 22:14:03 +00:00
jdpurcell eacadc8e09 Apparently UserControls that are created dynamically need AutoScaleMode.Font. UserControls placed via the designer should use AutoScaleMode.Inherit. Actually it seems possible to get around the problems of dynamically created UserControls (including the need to manually scale the positions/sizes) by moving their creation into the constructor after InitializeComponent, adding SuspendLayout before InitializeComponent, and adding ResumeLayout after UserControl creation. But I don't want to risk moving the code around too much. 2014-12-31 05:34:21 +00:00
jdpurcell 19bdb01adc Small tweak to previous commit. 2014-12-29 00:59:40 +00:00
jdpurcell 7b4c5636bd Improve scaling. Still needs some work but it's better than it was. 2014-12-28 23:58:45 +00:00
zeromus 4dc4745122 psx - revise disc swapping method. way cooler now, you get a list of discs in the virtualpad box, and changing between them maps to physical operations more logically. 2014-12-19 03:24:48 +00:00
zeromus c43dd9fc34 psx - revise disc switch schema stuff; add MinValue support to analog button and tweak the pip positioning 2014-12-16 03:15:27 +00:00
adelikat b4416e8317 VirtualPads - add an option "Clear clear analog input" 2014-07-27 12:39:56 +00:00
adelikat 9210b4d9a1 Greatly improve performance of the virtualpad tool, most configurations will have no speed cost unless there is no movie, movie speeds are much improved. 2014-07-26 17:11:47 +00:00
adelikat b9bb1635a1 more tweaks to the Analog Stick variable size logic, and positioning fixes to Genesis mouse schema 2014-07-06 17:02:35 +00:00
adelikat 2225811743 Virtualpad Analog stick - refactor to be variable size instead of a hardcoded 127, Implement Genesis mouse as a 255 analog stick. Note: some positioning bugginess is present in this check in, and probably some things got broken 2014-07-06 16:44:50 +00:00
adelikat 5c8cf8b141 Virtualpad Target screen - cleanup some unneeded code 2014-07-04 15:12:14 +00:00
adelikat 49955a3447 Virtualpads - targeting pair - support ability to set a range to translate values to, and set genesis lightgun to 10000 2014-07-04 00:04:18 +00:00
adelikat 8cf0f3b379 Virtualpads - re-implement the "bump" hotkeys 2014-06-29 23:43:31 +00:00
adelikat 27fb2ce9a0 Virtualpad Analog sticks - in record mode show the previous frame's input in gray 2014-06-29 14:42:20 +00:00
adelikat ee6d73aac7 Virtualpads - some code cleanup 2014-06-29 03:14:40 +00:00
adelikat f3cac5deff Virtualpads - fix readonly notion, no longer crashy when no pads are set up 2014-06-27 01:45:30 +00:00
adelikat 2a78b5c743 Virtualpads - fix up some Readonly logic 2014-06-26 20:36:33 +00:00
adelikat fcc3ce214b Virtualpads - wire up read-only toggle behavior and remove hacky button 2014-06-26 20:07:07 +00:00
adelikat 82d6490532 VirtualPads - implement Set on TargetScreen control 2014-06-25 21:11:25 +00:00
adelikat 4d9f46c6a1 Implement read-only for VirtualPadButton 2014-06-25 20:40:20 +00:00
adelikat 9045f8402c Virtual Pads - hook up Nes Power Pad and also hook it up to bk2 mnemonics 2014-06-25 00:11:59 +00:00
adelikat a1926e1a58 Make virtualpads prettier including a Display name that can (should) be set in the schema, and an optional Max Size (defaults to default size if left out), added lots of nes stuff, and basic 2 player famicom (including microphone on player 2) 2014-06-24 23:32:30 +00:00
adelikat 118d69a669 Virtual pad progress 2014-06-24 16:36:19 +00:00
adelikat 3208440225 Virtual Pads - basic analog button control and wire up to NES arkanoid paddle 2014-06-24 12:58:08 +00:00
adelikat b364b5c48f implement TargetScreen virtual pad and wire up to Nes zapper 2014-06-22 21:50:27 +00:00
adelikat a248e2d99b Virtual Pads - analog stick should be done now (including max X,Y constraints) 2014-06-22 17:41:13 +00:00
adelikat 50dafe1269 Virtualpads - more stuff 2014-06-22 16:30:24 +00:00
adelikat 2009e07e35 Virtualpads - Some Progress 2014-06-22 15:43:45 +00:00
adelikat 41e4a3b13a Virtualpads - more progress 2014-06-22 15:05:37 +00:00
adelikat c15f9ce84d Virtualpads - Use VirtualPadButton instead of Checkbox (to give all buttons right-click autofire capability) 2014-06-22 14:50:23 +00:00
adelikat c3bcc0cbc8 Virtualpads - more reorg 2014-06-22 14:43:59 +00:00
adelikat 60d1784895 Delete old virtualpad files 2014-06-22 14:13:10 +00:00
adelikat 1e48111092 Virtual Pad - ability to toggle between single player and multiplayer and remember the setting in the config 2014-05-11 23:08:34 +00:00
adelikat c669680e07 Rename Multiclient folder 2013-11-03 04:05:56 +00:00