Skip to content

Releases: emersonrp/bindcontrol

v0.20 Prerelease 4 - select binds directory

24 Jun 19:54
Compare
Choose a tag to compare

In addition to the changes from the previous three prereleases, this release adds in a check, at "Write Binds" time, that the directory being written to is "owned" by the current profile, and warns if it is not.

It decides on "ownership" by writing a "bcprofileid.txt" file to the directory. Accordingly, any binds directories generated before this release are "unowned" until they have binds written to them.

This is just to attempt to prevent profiles that somehow contain the same profile binds directory from stepping over each other.

It may be that, later, this detection of "someone else's binds directory" gets extended to checking the binds directory at load / save / rename / etc time and warning if there's a collision, but that is not the case for this release.

There are also various small bugfixes and changes from the main branch.

v0.20 Prerelease 3 - select binds directory

21 Jun 15:55
Compare
Choose a tag to compare

This prerelease:
-- changes the "new profile" experience for people with "start with new profile," and therefore also first-time users, to go through the full new-profile process, including asking for a profile name. This is not as perfect as I'd like but fixes a whole class of weirdness so is an iterative improvement
-- fixes a couple of issues with the colored Profile box on Windows
-- changes the hero and villain colors to be less dark and grey

v0.20 Prerelease 2 - select binds directory

20 Jun 18:13
Compare
Choose a tag to compare

Thjs prerelease contains some iterating on the previous prerelease, including putting back a decorated display of the Profile name in the main window, adding an "alignment" picker, and fixing several misfeatures and bugs. Please check the previous prerelease for more detailed notes about what this feature is all about:

https://github.com/emersonrp/bindcontrol/releases/tag/select_binds_dir_prerelease1

v0.20 Prerelease 1 - select binds directory

19 Jun 03:35
Compare
Choose a tag to compare

This prerelease allows the user to select a profile's binds directory. Up until now, this directory has been the same as the profile name, necessitating keeping the profile name short and a single word. With this release, the binds directory for a profile can be selected using a "Set Binds Location" button located on the lower left of the window.

As a consequence of this, the notion of the Profile Name has been removed. The Profile's main identifier is its filename, and therefore can now contain whatever characters the filesystem supports.

By default, existing profiles will continue to have their profile bind directory the same as their filename, which is to say the same as their former Profile Name.

New profiles will have a directory name selected for them that attempts to be short and related to the profile filename. This can be changed at any time using the "Set Binds Location" button. The binds directory name still needs to contain only A-Z 0-9 and _, and it ought to be as short as is feasible. (Edit to add: the code does not yet completely check these constraints. It will in the final release.)

Changing the binds directory for a profile will offer to delete the old binds directory, and will save the profile, including any other changes made this session.

This is probably not bulletproof yet, but it's all in there, so please check it out and file any issues you find. It should work as you expect; if it doesn't, file an issue.

BindControl v0.19.3

18 Jun 16:11
Compare
Choose a tag to compare

Better BufferBind checking and error detection / notification; bugfixes and tweaks

BufferBinds: better error checking and UI feedback
BufferBinds: Add CheckIfKeySelected and checkIfWellFormed, and use them
BufferBinds: PowerPicker is ErrorControl; use that in BufferBindPane
PowerBinder: Bind string inside rearrange list; update bind string on load
Bugfix: don't crash because we didn't initialize DefaultToolTip
ErrorControls: set DefaultToolTip at init time and restore it when no errors

BindControl v0.19.2

16 Jun 18:37
Compare
Choose a tag to compare

Rework of Key Select dialog to clarify what's possible.

Partially because of my misunderstanding of what's possible in-game, and
partially because of the way I implemented it, the Key Select dialog has
up until now been capable of creating keybinds that don't work as
intended in the game. This release addresses this problem.

-- The game simply does not honor multiple "chord" keys in a bind, so
eg "SHIFT+CTRL+R" would be bound as "SHIFT+CTRL" instead. Only two keys
can be used in a bind, and any bind attempting to do more will only bind
the first two in the keybind string.

-- The split of, for instance, "LSHIFT" and "RSHIFT" only works in isolation or
on the right-hand side of a keybind. That is to say, "LCTRL+R" will bind
"CTRL+R" and will be triggered no matter which Control key is used, since
the "LCTRL" is on the left-hand side of the bindstring. Binds like "LSHIFT"
or "ALT+RCTRL" work as expected.

This release updates the logic of the keybind dialog so that it makes
every effort to honor these limitations. It's been pretty rigorously
tested, but it's probably possible to fool it into something strange
with enough fiddling. If you manage to get a weird string into the
keybind window (I've seen, for instance, "ALT+ALT"), BindControl will
happily write it to the bindfiles and you may have weirdness in-game.
Don't do that. If this proves to be an ongoing problem, I might
implement sanity-checking at write-binds time.

In general, if you're just mashing "CTRL+5" or something, it should work
flawlessly.

If you're trying to make a controller bind, and the dialog gets its
state stuck, just tap a key on the keyboard and then try the controller
bind again.

I realize this release note is a small novel, but there's a lot going on
under the hood here. Please file issues for any problems you find.

BindControl v0.19.1

15 Jun 21:45
Compare
Choose a tag to compare

Delete Complex Binds' and Buffer Binds' bindfiles on delete or rename

This release (optionally but by default) deletes a Complex Bind's or
Buffer Bind's bindfiles upon deleting the bind from the profile, and
(unilaterally) deletes them upon rename of such a bind.

This will keep the bind directory clean of orphaned custom bind cruft in
as nonintrusive a way as possible.

BindControl v0.19.0.2

15 Jun 21:17
Compare
Choose a tag to compare

Bugfix / tweak release:

-- Add help buttons next to each Custom Binds button.
-- PowerBinder: don't crash/traceback if first step is cancelled
-- Write bufferbind files only for defined power steps

BindControl v0.19.0.1

15 Jun 17:40
Compare
Choose a tag to compare

Bugfix: "Delete All Binds" now removes an empty binds directory

If "Delete All Binds" clears the profile directory completely, ie, there
were no user-added files or other non-BindControl debris in there, the
profile's binds directory will be removed.

BindControl v0.19 - "Delete All Binds"

15 Jun 16:25
Compare
Choose a tag to compare

Actual release of "Delete All Binds" functionality.

This release adds a new "Delete All Binds" button to the bottom, next to
"Write Binds."

This will attempt to delete all BindControl-managed files in the current
Profile's binds directory and remove empty directories (including the
binds directory itself). Manually-added files will not be touched.

It feels pretty solid, but programmatically deleting files is always
nervous-making. The feature attempts to make sure you don't have your
binds directory unset or set to the root of a drive or something; it
also will let you know what path it's about to go spelunking in and asks
for confirmation.

Please check it out if this functionality interests you. Please be
careful with it and let me know if it does anything remotely surprising,
by filing an issue. Thanks.