Jump to content

"CityBinder for Homecoming" progress


Tailcoat

Recommended Posts

I'm still working on some updates for the next version and I've been posting information on the blog at the SourceForge project page (https://sourceforge.net/p/citybinder-for-homecoming/blog/), but figured I might as well post some updates here.

 

I started trying to hook up a "macro maker" feature, but it's a lot more complicated when utilizing elements created by functions written by someone far more experienced than me than when I was starting from scratch making the files in the CoX_Macro_Maker folder in the CB4Hv0.1 download. I'd like to add an icon selection feature for image macros so you can just sort images and click on the one you like rather than hunting down file names, but for now, I'm starting with basic plain macros and will build from there. I can make the code-generation box return the name that the user types and I've got a Power Binder button in the window so you can choose commands, but I'm stuck on trying to pass the Power Binder's code to the macro code box.

 

If anyone experienced with Lua has any information on how that might be done, please let me know what to do. Here's a link to a post explaining the issue in more detail: https://stackoverflow.com/questions/69157714/a-value-from-different-files-function-returns-blank-lua

Link to comment
Share on other sites

Since binds and macros are identical except for the initial bits, it seems like the tool could make either. The only real headache would be if you wanted to include the entire database of icon images (which would be cool; I sometimes get lost for far too long finding Just The Right Icon, especially for sets). But a basic make this a bind/make this a macro option should be a pretty easy step.

 

You don't even have to keep track of macros the way you do of keybinds. 🙂

UPDATED: v4.15 Technical Guide (post 27p7)... 154 pages of comprehensive and validated info on on the nuts and bolts!
ALSO:  GABS Bindfile  ·  WindowScaler  ·  Teleport Guide  ·  and City of Zeroes  all at  www.Shenanigunner.com

 
Link to comment
Share on other sites

On 9/19/2021 at 1:44 PM, Shenanigunner said:

Since binds and macros are identical except for the initial bits, it seems like the tool could make either. The only real headache would be if you wanted to include the entire database of icon images (which would be cool; I sometimes get lost for far too long finding Just The Right Icon, especially for sets). But a basic make this a bind/make this a macro option should be a pretty easy step.

 

You don't even have to keep track of macros the way you do of keybinds. 🙂

 

I've been working on adapting the Power Binder for use in macros too (and in the future, it'd be cool to use it for making pop menus) but haven't been able to figure out how to access a certain variable buried in the function used to create the Power Binder. Then I had to backtrack to figure out how to update the languages so I can use newer features (like add a Copy button) to do some of the stuff I want and I still need to figure out how to get citybinder.c to correctly point at the IUP libraries. It's been a long, twisted rabbit hole of research and downloads and tutorials... but I've learned how to make an .exe and stuff about Makefiles. Also, I added a feature so when you use a bind to start typing in the chat box, you can have it add your global handle (or whatever you type in the box) before your text.

As for macros, the main thing I wanted to do with them is to make a database of images, b/c I sure as hell have spent too much time searching for the perfect icon to represent a costume change 😅. In the future, I'd like to make it so the user can save macros in case they want to open one up and modify it for a different character.

Link to comment
Share on other sites

That is the one huge drawback of macros — that they can't be saved, loaded or managed very easily. I don't know if there's any hook at all for getting them in and out of the UI except by entering one text string at a time; the in-tray editing is as crude as the rest of the game's text entry. For thing like BadgeDRADIS, the best I could do was write a temporary bind file that, when loaded, will create each of the seven macros, with cool icons, with seven keys (Shift-F1 through Shift-F7). and then reload any original keys. Pretty clumsy.

 

The only solution I've found is to keep a few files open in Notepad++; it's fairly easy to keep macro strings organized and ready for edit, cut and paste from there. Still pretty clumsy and wonkoid.

 

I've never looked to see where macros are stored in the client folders, but that would be the place to start, if it's accessible/decodable. ETA: just searched. I can't figure where the file/s might be!

 

ETA: Ah, according to experts, macros are stored in the character, server side. How bizarre. Makes any kind of management system almost impossible... sigh.

 

 

 

Edited by Shenanigunner

UPDATED: v4.15 Technical Guide (post 27p7)... 154 pages of comprehensive and validated info on on the nuts and bolts!
ALSO:  GABS Bindfile  ·  WindowScaler  ·  Teleport Guide  ·  and City of Zeroes  all at  www.Shenanigunner.com

 
Link to comment
Share on other sites

An update: I want to update Lua 5.1 to 5.4 but apparently doing so will break a lot of things because of all the changes made to Lua after 5.1. I'll give it a try, but it's going to set me back, which is annoying since I want to get back to adding new features. I'm not sure if I can use the latest IUP 3.30 with outdated Lua 5.1... If I can, that could solve things a lot easier.

Link to comment
Share on other sites

  • 2 months later

It's been grueling, but I learned a lot of things in finally getting IUP 3.30 working with CityBinder. I got the Makefile properly updated, which means I can build the new CB as an EXE. I still need to learn more if I want to compile it for anything other than 64-bit Windows. I learned how to add a manifest to make it DPI Aware, so now the interface works in 4K and uses the default Windows 10 style... of course that means the UI got squished and I've had to overhaul it, but with shiny new commands in this version of IUP, I was going to do it anyway.

 

I'm still working on updating what I've got before trying to get into new stuff like an image macro maker I want to be able to display icon pictures to click on. I'd also like to repurpose the "powerbinder" feature for things like generating macros and pop menus.

 

I've been keeping extensibility in mind, in the spirit of the original CB, so I've made some things more user-friendly for people interested in writing their own modules:

  • New API functions make it easier to create some UI elements with pre-defined attributes like dialog windows, frames, and dividers. This makes enacting global style changes easier and less effort/code is required to make decent-looking interfaces.
  • The main Lua file now contains a bunch of global variables to control the UI's appearance (mostly colors)
  • The enormous utility code file has been split up to make it easier to find relevant sections. 
  • Emotes have been moved out of a module and into their own file. New ones have their own table in case anyone feels like adapting CB for a different server and doesn't want to comb through the giant list looking for commands that might not exist in other versions.
  • It's now possible to add modules by sticking a properly-coded Lua file into a modules folder rather than have to add the file name to a separate list for initialization. 
  • Best of all, I've replaced the big stack of module buttons with a neat and compact tree with collapsible folders! The app can now read a modules folder and populate the tree with their names and categories in alphabetical order. Double click on a name to open its dialog window.
    • I plan on adding checkboxes to the tree to make it easier to enable/disable modules

Now that the simplest mods have been updated, I'm getting into more complicated ones, so I don't have an ETA on version 0.2 yet. I'm halfway through my favorite module, Inspiration Popper, and have made a lot of updates to its code and added higher-res chat bubble preview icons. 

 

I still don't know what to do with Speed on Demand other than I want to break it up if possible. That's one that makes me want to get fancy and add things like a pop menu generator since when I play teleporters, I find it much less cluttered to use a pop menu.

 

 

image.thumb.png.b5514da69dee514380ee9da300eca562.png

Link to comment
Share on other sites

Have you looked at the new/newish/rediscovered press+release binds, especially for speed/flight on demand? All my alts now have a one-key "go like hell" mode.

UPDATED: v4.15 Technical Guide (post 27p7)... 154 pages of comprehensive and validated info on on the nuts and bolts!
ALSO:  GABS Bindfile  ·  WindowScaler  ·  Teleport Guide  ·  and City of Zeroes  all at  www.Shenanigunner.com

 
Link to comment
Share on other sites

Thread is here. Written up in greater technical detail in the latest Guide.

 

Very cool stuff, especially for the new two-stage travel powers. One key to rule them all. 🙂

  • Thumbs Up 1

UPDATED: v4.15 Technical Guide (post 27p7)... 154 pages of comprehensive and validated info on on the nuts and bolts!
ALSO:  GABS Bindfile  ·  WindowScaler  ·  Teleport Guide  ·  and City of Zeroes  all at  www.Shenanigunner.com

 
Link to comment
Share on other sites

On 12/22/2021 at 6:49 AM, Marshal_General said:

I don't know if this is addressed or not, but I am using the old pre shut down version of CB and have to go in and find/replace bindloadfile with bindloadfilesilent so my chat doesn't get spammed every time I move.

 

You bet I changed that! Did a mass search and replace. Also added missing powers and ATs (the recently added Stone powers and innertube emotes need to be added in 0.2). You can see other changes I made in CB4H 0.1 here: https://sourceforge.net/p/citybinder-for-homecoming/wiki/Change Log/#top and below that are some upcoming changes, which I need to update. I went quiet for a few months because I was struggling to learn and figure out a bunch of new stuff.

Is Speed on Demand the really spammy module? I thought I saw a crazy amount of files I think were related to normal WASD movement and I wondered why, but it was a while ago when I checked. 

 

Link to comment
Share on other sites

7 minutes ago, Tailcoat said:

 

You bet I changed that! Did a mass search and replace. Also added missing powers and ATs (the recently added Stone powers and innertube emotes need to be added in 0.2). You can see other changes I made in CB4H 0.1 here: https://sourceforge.net/p/citybinder-for-homecoming/wiki/Change Log/#top and below that are some upcoming changes, which I need to update. I went quiet for a few months because I was struggling to learn and figure out a bunch of new stuff.

Is Speed on Demand the really spammy module? I thought I saw a crazy amount of files I think were related to normal WASD movement and I wondered why, but it was a while ago when I checked. 

 

Thanks. How backwards compatible is it> Do I need to redo my binds/profiles for each character?

Link to comment
Share on other sites

1 hour ago, Marshal_General said:

Thanks. How backwards compatible is it> Do I need to redo my binds/profiles for each character?

 

You'll probably have to rechoose your AT (since adding Sentinel changed the order) and powers (so many additions there and when I tested loading a default profile with a misspelled power name, that power was left off the list). However, if you export the options for the modules you've used, those rely on fewer variables (you can open them or Lua files in Notepad if you ever want to check them out), so maybe you could start with a clean profile (if you delete the default.lua file and open the app, it will copy stddefault.lua to create a new default.lua with standard options) and then load up the .cbm files you have for each module, and if you want, you can hit the button to save this new version to default.lua.

 

I've been keeping this in mind for v0.2 and adding code that checks for old variables to update.

Link to comment
Share on other sites

  • 1 month later

Still working on the version 0.2 overhaul (I'm a hobbyist, so it's slow going having to learn and experiment a lot. I'm currently adding more functionality to Inspiration Popper so you can set binds for team insps), but in the meantime, I did upload a version 0.1.1 here (https://sourceforge.net/projects/citybinder-for-homecoming/files/CB4H_v0.1.1/ ) that has a few features not in 0.1 like...

  • a module to set basic camera commands
    • these can be changed directly in the game's settings, but if you already have a bunch of binds and want to keep them in the same text file to avoid potentially accidentally overwriting key binds (CB will check bind keys for conflicts) or whatever, now you can set the settings here
  • some camera commands with more options in the Power Binder (accessed via Simple Binds module)
  • option to add your Global handle to the beginning of chats started by shortcuts defined in the "Typing" module
  • All 3 quit commands are now available via Power Binder under "quit"

 

If anyone out there has an interest in helping develop this app and is familiar with Lua and the IUP library, I'd love to collaborate. 

Edited by Tailcoat
  • Like 1
Link to comment
Share on other sites

  • 2 months later

Some updates for the future 0.2 update: 

 

* The virtual keyboard will now highlight selected keys
* It will now accept typing input in addition to the original input of clicking on the buttons
    * For duplicate keys (like numpad, shift, alt, ctrl), IUP can't differentiate numpad keys from normal ones and isn't recognizing left vs. right modifier keys, so if you want to assign those keys by typing, an extra key press will give a third option. Ex. Press "1" once for "1", again for "NUMPAD1", and again for neither.
* A "Clear Binds" button makes unassigning binds faster and easier
* A new logo! Each dialog window displays it as well.

 

* To create an ICO file holding multiple sizes, I used Visual Studio 2022: 
    * I chose a UWP template, added an icon to the ".rc" folder, cleaned out the default images (right click>Delete Image Type), and added the icon sizes and bit-depths I needed (Add Image Type)
    * Apparently, 32-bit images can't be edited in VS's icon editor, so I used 24-bit for the biggest, most polished icon (256px), and since the rest were much smaller, I had no need for more than 8-bit (256 colors). The VS icon editor seemed unable to handle partial transparency, so the anti-aliased edges would show up with 100% opacity, creating some speckles around the edge. I edited all my icon images to use aliased edges. 
    * You can paste the icon image into each "Image Type" in the .ico file, but VS screwed up the colors of 8-bit ones that had custom 256-color palettes (I used Photoshop to reduce the colors), so I used a Photoshop extension to save each icon as it's own .ico file (it can't save multiple sizes in one) and then load them into VS. From VS, I saved the icon's color palette (from the icon editor) and loaded it in my multi-size icon in the appropriate Image Type. Then pasting the icon image might work, but sometimes didn't and I wasn't sure how I fixed it.
    * Once I saved the icon, renamed it to citybinder.ico, put it in the "src" folder and recompiled the app, I had to update Windows' "icon cache" to make the change show up.

 

Screenshot 2022-04-10 210530.jpg

256px_color_antialiased.png

Edited by Tailcoat
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...