Wow, everybody's talking about me behind my back!
I'm interested in creating custom menus/dialogs, but I can't seem to find any documentation for the XML files. Does it exist anywhere (public)? Many things are somewhat self-descriptive, but I don't get how exactly the templates work (where/how are they instantiated?) and also I wonder what exactly a hotrect is (a button?).
I havehttp://darnified.net/forums/index.php/board,10.0.html, mostly for Oblivion on how to configure my settings. I wrote http://darnified.net/forums/index.php/topic,180.0.html on adding custom stuff and UI-Script interaction. Nothing on controls, etc yet, but you can check out the scripts in a11 to see what I'm doing there to collect input.
A hotrect is actually an image with a blank filename and target=true. No idea why they made it in the first place.
The reason I thought it was possible was because of the DarN UI config menu. It adds a new button to the main menu and a corresponding configuration dialog. Wouldn't this mean that you just can't add another button to the pause menu, with another custom dialog?
Yup. The button has a toggle state that the settings rect checks. When it's toggled on, the rect is visible, and the menu background hidden. This is doable right from XML code. FOSE is required for more advanced stuff though.
I'm not sure. Editing the very front of the game might be different from creating new XML menus inside the game itself and calling them from scripts, etc.
If it is possible to create brand-new, IN-GAME interactive XML interfaces, I would really like to know how, even if it required FOSE.
http://www.tesnexus.com/downloads/images/10763-1-1208710572.jpg. http://www.youtube.com/watch?v=ntojHU4YD_8. All XML - no script backing there yet. Resides in the HUD, but appears to be in page 5 of the Stats Menu. HACKZ! http://ui.darnified.net/wip/F3/DUIF3a12_04.jpg. You have tabbed pages with optional sub-tabs to the left. It's interactive, brand-new, in-game and resides in the Start Menu.
DarN is the only human outside of Bethesda or Obsidian that has decoded the secrets of the Menu XML - it is not the trivial kind of XML, but quite intricate.
There are no tutorials yet written - perhaps we need to bribe DarN.
See above.
heh! Talk about a hack.
Yeah its a big ole workaround, if that could work.
..... ew, though. Totally not clean.
The whole UI-business is a hack. It's so rigid and so not meant to be modded, that the only way in is by trickery.
Yes you can only add to existing menus, not create brand new ones.
I had played around with trying to add a new menu by adding it to the HUD, Then only have it visible when certain conditions were set. The issues were that the game would continue to play in the background (not nessesarily a bad thing as it was a medical mod and this would discourage using it in combat) and I couldnt figure out how to let a player push a button on the HUD.
So the result was a Fail and a Headache so big I needed a whole 6 pack.
I could've told you that.
Do you think it would be possible to create some sort of "generic" menu mode by using (abusing
) the console? Because when the console is active the game will stop and you can actually click custom menu items. It also has it's own MenuMode id.
The only problem would be to disable all other console features. Some ideas...
...to disable console keyboard input
- temporarily disable the enter key
- on any key press, tap backspace
...to disable reference selection
- place an invisible (alpha 0) image over the full size of the screen that captures all clicks (
&no_click_past; ?)
Are there any obivious things i missed why this wouldnt be a good idea?
I looked at the console as a possibility before settling on the Start Menu. If you set a flag to indicate what kind of menu you want, you can present totally different menus depending on that. Say you want a much better message menu interface, just set the appropriate ui var in the Message Menu with FOSE, and make your custom code visible according to that. Var off - regular menu.
Stackingtype is only for menus. To block input, use an invisible image or just a rect with target set, and a depth greater than what you're blocking.
Well my first thought is there are many players who would not want to lose their console command abilities. Aside from that it would depend on how the console is called, if it is even possible to add information to it.
See the above reply. You could call the menu using a FOSE hotkey, set the appropriate var, and the user would be presented with your menu. By hitting the console key alone, he would be presented with the console. Adding stuff to the console is possible IIRC.