

Interface Helper
A library mod that exposes more data in Interface functions.Details
Majora's Mask: Recompiled Interface Helper
This is a library mod that exposes more data inside interface functions so mods can change interface drawing functionality in a simpler and more precise manner.
Usage
- Download
interface_helper.h
from theexample
folder in this repo. - Place that header in your mod's
src
folder. - Add
#include "interface_helper.h"
to the top of your source file. - Scan the function patches in this repo and find the variables you want to change and then use their respective DECLARE and REGISTER macros in your source file.
- The DECLARE macro must be placed outside of any scope.
- The REGISTER macro should be ran once after the game has initalised, for example in a
recomp_after_play_init
callback.
- Modify that variable by accessing it with the declared pointer - the pointer's name will be the same as the variable but with a 'p' instead of an 'm' prefix.
Extras
The library contains some improved optional bug fixes and inconsistency corrections from Modern Controller Overhaul:
- Items equipped to the Attack button can be slightly scaled down to actually fit the button and to be more consistent with items equipped to the C-buttons.
- There is an option for the Attack button to no longer be disabled when empty, matching the other buttons.
- Deku Link's empty C-buttons being disabled while other forms aren't can been fixed.
- The green ammo bug before obtaining the magic meter can been fixed.
Dev Recommendations
- The library contains some "extra variables" that are unneeded for vanilla functionality but should be updated if your mod changes something they relate to. These variables are all stored in
extra_vars.c
.- As an example, if you move the A or B button positions, you should also change the m(A/B)ItemEquipPosition(X/Y) variables.
- If your mod completely disables a specific UI element, you shouldn't just rely on its alpha being set to 0 or its position being moved off screen. You should use the available
...Enabled
variable to completely disable the code (and any callbacks) being run.