emersonrp / bindcontrol

Keybind manager for City of Heroes
GNU General Public License v3.0
3 stars 3 forks source link

BindControl

BindControl is a helper app for creating and maintaining keybinds for City of Heroes.

It is an enhanced port of Konoko and Monorail's CityBinder 0.76, using Python and the WxWidgets UI toolkit.

During City of Heroes' original run, CityBinder was the go-to app for keybinds. It's written in lua, using the IUP toolkit, and the required versions of those can be difficult to set up for development on modern OSes. I wanted to add features and clean up the UI, so in a stunningly unwise act of hubris, I instead started work on BindControl.

I worked on it on-and-off for the remainder of the original run of the game, then shelved it, ostensibly forever. Now here in the age of the SCORE, Homecoming, and other servers, it once again has value, so I've dusted it off and continued to add features and modernize it.

With Homecoming recently securing the licensing for City of Heroes from NCSoft, development of the game and its ecosystem, BindControl included, is likely to remain very Homecoming-centric in the near to medium term. Recent changes to BindControl's Speed on Demand code incorporate changes made specifically in Homecoming Issue 27, and while it will probably continue to work elsewhere, I don't currently have a presence on these other servers to test and validate. Please feel free to open issues for non-Homecoming servers, but know that they might not receive as much attention as Homecoming-specific ones do.

Features

TODO

Using Binary Releases

Windows users: try the ZIP file from the latest release, and give feedback. If that works for you, it's the quickest path to victory.

MacOS users: an experimental binary release has been made available. It is not signed and/or notarized, and might or might not work at all. Any feedback is encouraged.

Linux users: an extremely experimental binary release is now available. You should be able to unzip the zipfile anywhere, and run the "BindControl" binary from within it.

If you receive malware warnings, please read my comments on that issue.

Running From Source

Dependencies

  1. Python version 3.10 or later
  2. wxPython version 4.2 or later

Getting and running the code

Credits

BindControl is in many places a direct port of CityBinder code, and in most other places was extremely influenced by it. Keybinding code drew from similar code in PADRE.

Various newer functionality was added to CityBinder for Homecoming by tailcoat, who kindly provided his source code and permission to adapt for use with BindControl, as well as offered suggestions and advice for improvements.

Citybinder's acknowledgements are reproduced below:

    Obviously, without Cryptic and NCSoft to have created/funded/published
    City of Heroes and City of Villains, there would be no point to this
    program.  Thanks to Gnarly and the numerous people who contributed to the
    creation of the Speed on Demand System.  Thanks to Sandolphan/Khaiba and
    the many people who posted Mastermind binds in the CoV Beta forums.
    Again thanks to Sandolphan for the Bodyguard mode binds.  Also thanks
    to the following people, who directly contributed to CityBinder, either
    with bug reports, feature suggestions, or contirbuted binds.
    PerezPersuader, Blue_Daze, Back_Blast, IronVulture, Darkelven,
    Shadowhand, Knight_Marshal, Nilt_, Psygon, DuskA, CyberKnight7, ErieFF,
    Darc_Reign, Beerninja, BarfBag, Oronis, TrystarMojo, Pyrobard,
    Ang_Rui_Shen, Konoko, Draznar, Local_Man, tyrose, Caustic, 80sboi,
    DarknessEternal, reiella, Robotech_Master, Ground_Zeroo, Stylina, and
    ShieldBearer.

The improved Inspiration Popper design was gratefully adapted from an unreleased version of CityBinder for Homecoming by Tailcoat.

Github Actions for automated building of binary releases graciously provided by JamzTheMan.

Additional feedback and suggestions provided in the Homecoming Forums thread and in Github issues by:
DevoDog68, BlackSpectre, Premmy, kenlon, Lumenia, xizar, autobotpinto

License

BindControl is licensed under the GPL version 3 or later.

emerson@hayseed.net