Commit Graph

491 Commits

Author SHA1 Message Date
adelikat 83e685cfa1 Tastudio - remove unnecesary updates in GoToFrame(), since tastudio and other tools are already updated by other methods it calls 2020-05-01 14:26:48 -05:00
adelikat a1c8c4ed3a Tastudio - create a FullRefresh() method that guarantees RowCount will be updated and all drawing will occur, but is slower, and use it in non-perormance situations such as copy/paste methods. Fixes #1956 2020-04-29 19:46:11 -05:00
adelikat 92db6b8b64 Tastudio - try to sort out when to fully redraw tastudio vs update row count 2020-04-29 19:39:18 -05:00
adelikat 9203f56eca tastudio - consolidate logic and always draw column emphasis (to show sticky state) when setting up columns, rather than only on load 2020-04-29 19:17:44 -05:00
adelikat 5252598aef tastudio - remove unnecessary setting of DialogResult 2020-04-29 19:10:57 -05:00
adelikat 68251cdc55 tastudio - simplify a bit, move some methods and fields around, improve comemnts 2020-04-28 12:42:27 -05:00
adelikat c8ae659b19 Tastudio - simplify some redundant code 2020-04-27 20:26:51 -05:00
adelikat 8ace823682 "fix" inability to open tastudio if default.tasproj was saved with a different system, the unnecessary save on load was necessary afterall, this code is bad. Fixes #1937 2020-04-26 14:21:14 -05:00
adelikat 7484fc1ad2 Revert "Tastudio - fix regression where default.tasproj is loaded if the file exists, fixes #1937"
This reverts commit 49395b435f.
2020-04-24 18:47:49 -05:00
adelikat 49395b435f Tastudio - fix regression where default.tasproj is loaded if the file exists, fixes #1937 2020-04-24 17:07:32 -05:00
adelikat 70633419ac
Refactor TasMovie and add interface (#1940)
* create ITasMovie interface, still lots of todos

* interface for TasMovie.ChangeLog

* rename method

* interface more TasMovie things

* file rename

* interface more ITasMovie things

* make Bk2Movie and TasMovie internal, rely on interfaces for behavior and MovieService for instantiation

* MovieService cleanup

* cleanup TasBranch handling and simplify ITasMovie api

* more branch logic cleanup and ITasMovie simplificaiton

* more cleanup of branch handling

* more ITasMovie simplification

* nitpick cleanup

* Use IMovie.GetInputLogEntry instead of GetLogEntries

* more ITasMovie cleanup

* move come ITasMovie properties to TasBranchCollection

* TasMovie cleanup

* simplify ITasMovie more

* cleanup
2020-04-19 13:38:45 -05:00
adelikat 918fbe6367 fix Tastudio .tasproj loading broken in previous commits (this code is a mess), MovieSession - remove setter on Movie property 2020-04-18 15:37:43 -05:00
adelikat 56cc1fefff Tastudio - simplify movie loading stuff 2020-04-18 15:28:31 -05:00
adelikat 4e3aa0eb15 move Bk2 -> TasMovie conversion logic from Tastudio to MovieSession, fix crashing when loading .bk2 movies from the tastudio menu 2020-04-18 14:50:25 -05:00
adelikat d946aa6145 tastudio - cleanups 2020-04-18 14:50:25 -05:00
adelikat 7a77861896 Conisstently use MovieSession.StopMovie instead of stopping the movie directly, derefrence the movie on stopping instead of letting it hang around in memory 2020-04-18 14:50:25 -05:00
adelikat b2208d714c Tastudio cleanups 2020-04-18 14:50:25 -05:00
adelikat dc9fa1acf3 movie code cleanup 2020-04-18 11:54:49 -05:00
adelikat 9494243eef add an IStatable extension method that can load a state directly from a byte array, reduces the stream creation boiler plate in a number of palces 2020-04-18 10:26:08 -05:00
adelikat 3f1ef8dd4d add a IMovieSession property to ToolFormBase and use it 2020-04-16 12:25:42 -05:00
adelikat ab7225c955 remove MovieSession convenience property that isn't that convenient anyway 2020-04-14 20:58:02 -05:00
adelikat 0d2f014621 refactor Bk2LogEntryGenerator to be stateless, refactor some IMovieSession shenangians 2020-04-14 20:50:21 -05:00
adelikat cdfeda8b71 rename IMovieController methods and classes to better describe what they are 2020-04-14 20:10:50 -05:00
adelikat 03a7ea8438 IMovie.PopulateWithDefaultHeaderValues() - pass in dependencies instead of using Globals 2020-04-14 17:30:32 -05:00
adelikat 2b17c6d310 simplify some LogGenerator code 2020-04-14 16:44:37 -05:00
adelikat 831621b864 remove some unused code 2020-04-14 16:25:28 -05:00
adelikat df538c2833 ToolManager - lock down UpdateBefore/After, calling code should always only use UpdateToolsBefore/After since it properly deals with lua. This fixes inconsistent behavior in MovieZone and tastudio branch loading 2020-04-06 17:46:59 -05: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
YoshiRulz e1951b9fc5
Cleanup PathExtensions
Fixes f02295455/c731e1168/5c7135d67
2020-03-21 13:45:58 +10:00
adelikat 6d5c444252 Move Global controller adapters into InputManager, it's a step in the right direction 2020-03-15 17:50:48 -05:00
adelikat 33a14327b7 move most logic from PathManager to extension methods in BizHawk.Common 2020-03-15 15:45:11 -05:00
adelikat 348cbd18df
Remove PathManager code that had dependencies on Globals (#1881)
* move one usage of Firwmare method into Firmware config where it is better suited

* PathManager - remove unused code

* move some PathEntry specific logic out of PathManger and into PathEntryCollection extension methods

* PathManager - detangle some exe pathing logic from Global.Config usage, clarify what a completely broken method should actuall do

* move more logic from PathManager to PathEntryCollection extension method

* move absolute path creation to PathEntryCollection, lots of refactoring and simplifying of PathEntries usage

* simplify PathEntryColleciton usage more

* simplify PathEntryCollection more

* break PathEntry classes into separate files, a bit of cleanup

* move Rom path logic out of PathManager into PathEntryCollectionExtensions

* move config UseRecentForRoms and LastRomPath into PathEntries, note that this is a breaking change for previous configs, those values will revert back to default values

* move SaveRamPath logic from PathManager to PathEntryCollections

* move cheats path logic from PathManager to PathEntryCollection

* move another method out of PathManager

* move some Retro hacks to PathEntryCollections, exposes more implicit dependencies

* move savestate logic out of PathManager to PathEntryCollection

* move more logic out of PathManager

* move some savestate logic out of PathManager, move most to MainForm where it is used, detangle some implicit dependencies from SaveSlotManager

* rename method

* move more logic from PathManager to PathCollectionEntry

* movie final Global.Config.PathEntries logic out of PathManager and into PathEnties
2020-03-15 15:12:36 -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
J.D. Purcell f7174eb398 Make display scaling apply to InputRoll column header widths. 2020-02-17 12:34:37 -05:00
adelikat 656f2b814e Move IEmulator extensions to the Emulation.Common namespace, the intent is that these are used and serve as built in functionality, so it's overly tedious to when most situations require both Common and an additional extensions namespace 2020-02-15 12:33:15 -06:00
adelikat 192973dcd7 Tastudio - hide N64 "fake analog" controls by default 2020-02-08 11:03:03 -06:00
Zach ef18c1a3a6
Fix Macro Functionality (fixes #1838) (#1839)
* Initial fixes for macro menu items

* Arguments for this constructor can't be optional.
2020-02-07 13:45:13 -06:00
adelikat 626efe8caf put control extension methods into the EmuHawk names space isntead of a custom one. We want these to be found and used, and most dialogs use them 2020-02-03 12:54:32 -06:00
adelikat 74e63cd566 Tastudio - some reorg 2020-02-02 13:32:22 -06:00
adelikat 58ff3fa60d Tastudio - remember the "Bind Markers to input" settings as a tastudio setting 2020-02-01 16:21:38 -06:00
adelikat 3414cc1d33 Merge branch 'release' 2020-01-18 16:19:03 -06:00
adelikat 1cd5675ce0 Tastudio - fix crash when trying to use alt+drag after autoloading a .tasproj 2020-01-18 15:59:37 -06:00
adelikat 246efa4c86 Tastudio - remove config option to turn off input painting, there's no reasonable scenario where no painting is better, some other slight cleanups 2020-01-17 16:04:01 -06:00
adelikat 63da3d7bd3 expose GenerateLogKey and Map as methods on ILogEntryGenerator and remove all the direct casting that was happening in tastudio code 2020-01-13 15:49:11 -06:00
YoshiRulz 9ef32cf8f5
Merge ctors using default params, resolves a TODO 2020-01-02 22:10:42 +10:00
adelikat 1aa318d7e1 use ToolFormBase properties instead of globals 2019-12-22 10:57:06 -06:00
adelikat 77c04412d2 ToolManager - inject common things like config, mainform, and the tool manager itself to tools that inherit ToolFormBase 2019-12-22 10:57:06 -06:00
adelikat f8ed9f49eb slight cleanup 2019-12-22 10:57:06 -06:00
adelikat b80b367831 refactor IMovie to expose the movie mode, and make extension methods that do IsPlaying type logic. This way there can be direct checks, and more variety of methods without cluttering the interface 2019-12-21 16:34:29 -06:00
adelikat 5e40305d1c fix recent regression if auto-load is set, and default.tasproj is the most recent movie 2019-12-13 17:40:39 -06:00