Commit Graph

395 Commits

Author SHA1 Message Date
adelikat e0a51eaab1 Rename IStateManager.StateCount -> IStateManager.Count 2019-06-15 14:49:43 -05:00
adelikat cb4e71ebf7 rename a StateManager method, and delete some unused methods 2019-06-15 14:40:18 -05:00
adelikat 8f116a8428 Pass TasMovie into StateManagerDecay and have it get the last edited frame instead of from IStateManager 2019-06-15 14:35:31 -05:00
adelikat 3c27a332bb create IStateManager interface and use that instead of TasStateManager 2019-06-15 14:31:06 -05:00
adelikat 1bcf6394ed cleanup 2019-06-15 13:27:10 -05:00
adelikat 694ba93ec1 I think this is the correct wasLag logic 2019-06-15 13:10:31 -05:00
adelikat f431492944 better code for populating wasLag, I think 2019-06-15 12:53:17 -05:00
adelikat 3b9e54c250 refactor TasLagLog to allow for gaps in the history. Note that this is a breaking .tasproj format change currently 2019-06-15 12:11:52 -05:00
James Groom 067477ce18
Merge branch 'master' into clean_docs 2019-06-14 13:28:39 +00:00
feos 2423f44540 tastudio: drop laglog from branches since they don't have greenzone anymore 2019-06-13 19:39:52 +03:00
feos bc990061b7 tastudio: refactor out a variable
fix autorestore triggering while drawing on future frames
2019-06-12 22:34:16 +03:00
feos f5bcdc4aba fix #1513
OSD info on branch hover is mandatory, so I'm not removing it. drawing the branch OSD-framebuffer on the emulator screen is barely possible without butchering everything, so I'm not doing it. instead, keep both core and client framebuffers and use them where they make sense: osd FB shows up on hover, core FB goes to emulator screen on branch load.
2019-06-09 20:34:14 +03:00
YoshiRulz 2642ef4049
Remove empty docs 2019-06-06 16:41:10 +10:00
vadosnaprimer 7915ec8bc1 tsm decay: try to work around some more removal bugs 2019-04-18 19:11:45 +03:00
James Groom 779975f689
Use nameof 2019-03-28 14:17:14 +11:00
YoshiRulz 9d0ee22885
Use string interpolation 2019-03-20 15:01:12 +10:00
alyosha-tas 2bddf3663e TAStudio: Fix some bugs in new from menues 2019-01-19 13:30:42 -06:00
feos 56e77f4907 tastudio: allow to actually unbind markers from input, and unbind by default 2019-01-05 21:48:40 +03:00
feos cd2d63b04a tastudio:
- don't use branch laglog after loading it. it's useless because we invalidate if needed anyway
- PauseOnFrame being null started to crash seeking, fixed
- make use of movie alias in branchbox
- capture tsm state after loading the branch

todo: if we load a branch in the middle of invalid greenzone, advancing won't draw new greenzone even tho states are being created. laglog doesn't seem to allow gaps either. unsure how to resolve
2019-01-05 21:30:06 +03:00
feos b316efb922 cute, I forgot to save the actual changes 2018-12-03 21:16:06 +03:00
feos 3a688d543b tastudio: fix rec mode dying when appending movie frames
close #1376
2018-12-03 21:10:14 +03:00
feos a365284383 tastudio states decay: fix logic for last edited frame 2018-08-22 20:05:33 +03:00
feos a0e5e0e593 tastudio: actually don't drop state above last edited frame 2018-05-10 20:32:44 +03:00
feos 056c24e4cf tastudio: attempt to fix greenzone decay failing to drop states 2018-05-09 17:18:21 +03:00
feos ae6ce00d7c I've heard bad things about ElementAt() 2018-03-27 19:01:17 +03:00
feos 661a15dc2c tsm decay: remove states within internal state gap
states settings: clamp things harder
2018-03-11 17:57:30 +03:00
feos 3932e5a025 tsm decay: fix failing to delete frames if marker is there
markers can be *not* mod _step
2018-03-11 13:49:40 +03:00
feos 244530ffe3 tastudio: thanks for this 4 years old off-by-one
these kinds of errors are haunting me lately!

actually useful info about what it fixes: greenzone not being created after you insert right on current frame
2018-03-10 18:01:08 +03:00
feos 9c0328859d tastudio: fix disgusting copy-paste error causing exceptions out of nowhere 2018-03-10 18:01:08 +03:00
feos d89677c729 tastudio: fix #913 2018-03-08 14:59:05 +03:00
feos f81f41f6f7 tastudio: fix #916 2018-03-08 14:44:09 +03:00
feos bf8c21663d
State manager decay (#1128)
* Finally use exponential decay algorithm for greenzone
  * Works in both directions (unlike fceux taseditor)
* Stop using last accesses states for anything
* When dropping states per project save, account for state gap better
* Use _states.Keys[i] instead of _states.ElementAt{i).Key in speedy parts, because it's apparently tons faster
* Use StateIsMarker() where it's supposed to be used
* Markers are still left untouched
* Branch states are still dead (probably forever)
2018-03-08 12:24:35 +03:00
feos 0fe703c9b7 tsm: redo the algo from scratch, probably not last time 2018-02-27 01:28:24 +03:00
feos 13a49b00d0 tsm: improving the algo 2018-02-26 01:45:44 +03:00
feos 7ae374df01 tastudio: fuck this 2018-02-21 02:06:25 +03:00
TASeditor 36900b15d4 tastudio lua: setinput functions, onbranch callbacks (#1098) 2018-02-10 14:58:46 +03:00
vadosnaprimer 1809d19ecb smart state gap for greenzone. fix #915
disable disk capacity setting
2017-11-05 22:34:58 +03:00
feos 94170687a4 tastudio: always assign branch's laglog when it's loaded
fixes failure to color greenzone if a branch without input diff was loaded (and some other weird conditions were met)
2017-10-07 23:07:15 +03:00
feos 2e519eda05 tastudio: fix marker copies being recorded to history when branch backup is created 2017-05-29 21:20:46 +03:00
feos c1ee1d9505 tastudio: fix stupid bug in SetBoolStates() 2017-05-29 20:20:46 +03:00
adelikat 43cb50d5c3 Misc cleanups in Client.Common 2017-05-19 13:17:07 -05:00
adelikat 70baf9d306 Client.Common cleanups 2017-05-18 11:36:38 -05:00
adelikat cf15eb8950 TasStateManager - deciding upon a "fix" to the probable bug. This is technically different behavior than before but the intended behavior? This might break stuff 2017-05-17 13:20:57 -05:00
adelikat 2a54517b52 more misc Client.Common cleanups 2017-05-17 13:18:26 -05:00
adelikat dfea029fe4 Misc cleanups in Client.Common, documentation fixes 2017-05-17 11:16:55 -05:00
adelikat 22e2df3868 Point out a probable bug 2017-05-10 14:26:21 -05:00
adelikat 29d470a933 Cleanup tasproj related code. This includes C#6ism (feos has 2015 now). Added some todos for some sketch code 2017-05-10 14:19:46 -05:00
adelikat adc60dc6fb more LINQ pet peeves 2017-05-10 13:43:41 -05:00
adelikat 3860cf89c3 LINQ-fu 2017-05-10 13:40:18 -05:00
adelikat 429b066955 Client.Common - remove various redundant codez 2017-05-10 13:37:04 -05:00
adelikat f942a409d7 Client.Common - remove a bunch of unused usings 2017-05-10 13:27:10 -05:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
adelikat e0985465b6 misc Client.Common code cleanups 2017-05-09 13:19:55 -05:00
adelikat 5a408f9321 Remove the obsolete BinaryStateLoader.HasLump() 2017-04-24 13:18:45 -05:00
adelikat 1184e8ed05 lua - implement tastudio.getselection(), tastudio.insertframes(), tastudio.deleteframes() 2017-04-22 20:50:03 -05:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
feos a9cda4a21f tastudio: dynamically resize usertext column 2017-03-15 21:46:46 +03:00
feos 6e99227c72 tastudio: Clone() for branches. fixes UserText cancellation
also cancel backup and osd message if text edit was canceled
2017-03-15 19:17:47 +03:00
feos d254ad01d8 tastudio: add branch undo feature
the fact that it's separated from changelog is because there's no way to extend the latter, but *also* it's intended, as we want branches to be independent from changelog manipulations

todo: figure out branch text edits
2017-03-14 22:49:55 +03:00
feos 114274ac4d tastudio: latch autohold state for every manual movie length extension
finally fixes #534
2017-03-12 19:43:23 +03:00
zeromus 539cdc29f3 add SetPlayback to tastudio lua library. Can't be 100% sure it works, but it seems to be working OK. it may hang everything up if you seek through a really long redzone..... 2017-02-04 21:40:29 -06:00
feos 36f53116b1 tastudio: quit pretending -1 is a legit branchHash
seems to fix #785
2017-01-29 10:24:11 +03:00
feos b7ed072c4c tastudio: only load branch markers if they are bound to input 2017-01-19 20:49:18 +03:00
feos 06b14d654b tastudio: move greenzone writing/loading to the very end
hopefully if it crashes during greenzone saving, other components won't die
2017-01-19 14:52:31 +03:00
adelikat 2d9213c379 IController - Remove the indexer property and refactor code accordingly, also simplify and cleanup many of the IController implementations 2016-12-14 14:12:16 -06:00
adelikat 5ff33e7569 Rename IController.Type to IController.Definition to more clearly describe the property 2016-12-12 12:30:32 -06:00
feos ef8068daa4 Revert "tastudio: move LastPositionFrame to TasMovie, prepare for another revision"
This reverts commit eea49f1895.
2016-11-21 20:03:56 +03:00
feos eea49f1895 tastudio: move LastPositionFrame to TasMovie, prepare for another revision 2016-11-21 19:29:11 +03:00
feos edf21b8bfe fix tastudio crashes when:
- setting 0 space for disk states
- righclicking on selection if a bunch of selected frames contains the last frame
- cutting the last frame
2016-11-17 20:05:41 +03:00
feos 9714aa5cc9 tastudio:
- preserve branch text per update (unless default text has changed)
- remove redundant code from paste functions, rely on global clipboard fully with cut/copy too
2016-10-10 19:00:59 +03:00
feos 7309957c11 tastudio: pasting input beyond movie length extends it 2016-09-08 18:32:37 +03:00
feos 091a62ab25 tastudio history: properly fix recording
the problem was mismatching ideas of movie length between movie and history
2016-09-07 20:54:45 +03:00
feos 549fc333f1 tastudio: fix removal of states *near* lag frames 2016-09-03 15:17:38 +03:00
feos 2911e498e1 tastudio history: fix bug where undoing the movie extension (caused by drawing beyond the movie length) would swallow all the movie 2016-08-29 21:18:55 +03:00
feos 4f24682289 taseditor: fix LastPositionFrame resets 2016-08-28 15:34:18 +03:00
feos 215f9b9959 tastudio: some dirty fixes to how undo/redo works with recording frames 2016-08-22 21:17:35 +03:00
feos 170681c3ad tastudio: Recording mode
a bit inconsistent with how it switches to record right now
2016-08-03 22:29:27 +03:00
feos 178820746c tastudio: prevent crash occurring at new state capture
mem leak is still there for N64
2016-08-02 22:46:21 +03:00
feos 346c4e56b3 tastudio autosave:
- switch to appropriate method for backups
- option to save backup per file save
- menu command to save backup
2016-06-12 16:41:27 +03:00
feos cbc5ca2115 tastudio: fix the warning about inheritance mismatch 2016-06-11 18:58:22 +03:00
feos 32be07ce03 tastudio: don't record marker history edits to history
this generates a warning regarding "new is not required" for the functions I edited, dunno what to do with it
2016-06-11 12:48:11 +03:00
feos 2a952cebef saving too!
also catch inconsistent tsmSettings exception
2016-06-11 10:12:30 +03:00
feos ef93a50f4d tastudio: fix silly order error in tsmSettings parser 2016-06-11 09:46:21 +03:00
feos 559eacf95a InputpPompt: allow multiline info
bk2 export for tastudio: stop endlessly appending extensions
tasstudio autosave:
- fix interval init on load
- 0 interval disables autosave
- canceling SaveAs doesn't kill the timer
- ability to append "backup" to filename allows saving to a separate file
-- don't let tasproject switch to the backup file (bit hacky)
2016-06-10 16:05:12 +03:00
Suuper 327c45b440 Fixed issue #626. 2016-05-14 13:46:15 -05:00
feos 2e1132c2b9 tastudio: this should be reliable enough. 2016-04-25 18:18:20 +03:00
feos 000050b1e9 tastudio: integrate StateGap logic into ExcludeStates().
for loaded projects, stop forcing current frame capture if it's non-zero.
stop excluding state on frame 0.
todo: make capture state gap reliable for project state gap. right now it can capture odd frames if they go after markers or lag, so those will be missing when saving the project.
2016-04-25 18:04:42 +03:00
feos 408d0ae4d0 tastudio: attempt to make StateGap smarter.
it should rely on frames, not on state indexes. and we can only have states on frame numbers that are powers of 2.
doesn't work right on saving multiple times yet. need to cooperate with ExcludeStates() somehow.
2016-04-24 23:17:17 +03:00
feos f35938acdb tastudio: be able to load broken greenzone file. 2016-04-23 20:54:14 +03:00
feos 1581b5b283 tastudio: tie rerecording to laglog invalidation instead of states. 2016-04-18 18:52:37 +03:00
feos 7fa99c7d13 tastudio: project savegap (finally!)
ScrollSpeed defaults to taseditor's
2016-04-17 23:29:25 +03:00
feos a7b3668506 tastudio: fix Used and fix a nasty mistake in branch logic.
should properly handle branches created during seeking.
fix #606 I hope.
2016-04-17 18:54:55 +03:00
feos 0e6ec038a8 tsm: let this sanity check be there. 2016-04-17 16:01:09 +03:00
feos f5746a7b8f tastudio: stop updating splicer after every new cell is appended.
quick fix to #597.
fix crash when pasting input beyond movie length. todo: make input log append like PasteInsert does.
2016-04-17 13:52:58 +03:00
Suuper a751412c1f TasStateManager.cs -> fixed stateHasDuplicate 2016-02-20 13:43:24 -06:00
Suuper 8b5440d963 Fixed a few bugs in TasStateManager.cs 2016-02-20 12:34:13 -06:00
feos 1b8ef3738a tastudio:
- history form: canonical colors, show the current item better, report marker operations
- markers: adding markers updates dialog, don't ever remove marker 0
- tsm: attempt to fix exception in AllLag()
2016-01-27 12:53:26 +03:00
zeromus a355f78631 don't load entire inputlog into a string when parking it in a savestate 2016-01-10 23:08:13 -06:00
feos 2a6a2a7a8a tastudio: properly report saving progress.
also attempt to report seeking progress.
report occurs, but progressbar doesn't show up...
2015-12-10 01:38:06 +03:00
feos 8a6ddfbf3f tastudio: actually use initial state from anchored movies.
don't seek to whatever frame such a movie was created from.
2015-12-08 23:38:00 +03:00