Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various Quality of Life features #262

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

FransBouma
Copy link

@FransBouma FransBouma commented Jul 3, 2023

Hi,

I know, big PRs with multiple features suck, but otherwise I had to create a branch per feature which sucks too. :(

I added several QoL features to the main branch so stuff is now a bit more automated. Main driver is to utilize RTTI information more in an automated fashion. These make ReClass.NET now way more usable with RTTI info containing exe's :)

Stuff changed / added:

  • Defined various keyboard shortcuts for the node types, centrally defined in the Settings class. I also changed the ToolStripButtons to ToolStripMenuItems so they can have shortcuts (they behave the same). This has the advantage that you can just press e.g. Ctrl-Shift-P to define a pointer without opening the context menu as the keyboard shortcut is picked up by the toolbar button :)
  • Moved ReadFromMemory to MemoryBuffer so it's usable from multiple node types
  • VTable node now always displays RTTI info in the comment, if applicable. This information was lost once you created a VTable node
  • Added a way to init a class from RTTI information: it'll name the class after the type associated with the VTable and it will also define the first node as a VTable node.
  • The node context menu is now visible on nested class nodes, and options work now.

I hope I've added all code to the right place. I avoided refactoring whenever possible.

ps: in the commits there are also changes related to alt-shortcuts (showing when pressing alt on main menu items) but these obviously don't show in a context menu so I later on removed them again.

If you want I can also add Undo / Redo to node info. I wrote an algorithm library years ago (https://github.com/SolutionsDesign/Algorithmia) which I use in my software LLBLGen Pro extensively to build undo-redo aware datastructures and it's very easy to add an undo-redo aware property for instance (without the outside code needing any changes).

Hopefully you can use these changes!

(If you think, who are you: I wrote the Universal Unreal Engine Unlocker tools and a lot of other camera mods for games).

…olbar button to toolbar menu item so it can have a shortcut too.
…sable from different nodes. Changed VTable node so it always displays the RTTI information if available.
…e class. This required some hairy work in a lot of places as the context menu wasn't usable on nested classes. It now is
…ks without opening the menu. Made the window a bit wider (was too small already) so all toolbar buttons are visible
@FransBouma
Copy link
Author

Added 2 tiny things:

  • made the initial window a bit wider (was already too narrow) so all toolbar buttons are visible
  • added the init class from rtti to the toolbar so the shortcut ctrl-shift-N is now usable without opening the context menu. Disabled/enabled based on selected node (only enabled on class nodes)

… it gets removed when the window is too narrow
ReClass.NET/Controls/MemoryViewControl.cs Outdated Show resolved Hide resolved
ReClass.NET/Memory/MemoryBuffer.cs Outdated Show resolved Hide resolved
ReClass.NET/Nodes/BaseNode.cs Outdated Show resolved Hide resolved
ReClass.NET/Nodes/BaseNode.cs Outdated Show resolved Hide resolved
ReClass.NET/Nodes/ClassNode.cs Outdated Show resolved Hide resolved
ReClass.NET/Settings.cs Outdated Show resolved Hide resolved
…romBuffer to MemoryBuffer, have refactored Hex32Node to use this method instead, have removed unnecessary braces and brackets.
@FransBouma
Copy link
Author

I've corrected everything, I think. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants