KazWolfe/XIVDeck

Add Support for /micon Icons

KazWolfe opened this issue · 3 comments

Currently, XIVDeck does not render Macro Icons as defined through /micon, instead choosing to render the underlying preset icon for that specific macro.

Find a way to determine the appropriate icon to use for a macro if /micon is present (will likely require some more investigation of the hotbar module) and determine a way to gracefully indicate that a button triggers a macro rather than an action.

The main problem with this Issue is that XIVDeck does not have any sort of intelligence for overlaying or distinguishing icons in any way. If I were to expose a /micon to the Deck, it would be impossible at the UI level (unless the user does some special tagging) to show that this action is a macro versus just another direct action/hotbar slot.

I'll probably look at this once I figure out the overlay rendering scheme briefly discussed in #12.

Tech Notes:

Signature E8 ?? ?? ?? ?? 0F B6 BE ?? ?? ?? ?? 48 8B CD appears to handle this, method sig:

__int64 Macro::LoadMIcon(
        __int64 macroModulePtr, 
        __int64 UIModulePtr,
        HotbarSlotType *hotbarSlotIconTypePtr,
        unsigned int *hotbarSlotIconPtr,
        unsigned int macroPage,
        unsigned int macroId,
        __int64 unknownPtr)

Experimental support added as of ff72d10.

Note that there is not a overlay icon to indicate if any given button is a macro yet. This may or may not come later. This feature may or may not disappear entirely at some point in the future.