WMDD : Window Menu Dialog Data
|
- XML modding tips
- See HERE to start learning about XML modding.
- See HERE if you are searching for information on how to handle object coordinates.
- See HERE for some typical modding errors and their causes.
|
|
XML
WMCL << Other file types >> WMM
switch to OBD page
|
general information
- The xml code on this page is compatible with onisplit v0.9.61.0
- WMDD file are global (AE/AEInstaller/vanilla/level0_Final.dat)
- A WMDD file contains either a page plus dialogs or a "pop-up" page like "WMDDdialog_ChangeRestart.xml" with dialogs.
- interfering WMDD ? : WMDDdialog_text_console.xml (might define size of "text consoles", there: 460x410)
- Oni's out-of-game windows are overlaying. The parent window becomes visible if you remove the background.
XML structure
<?xml version="1.0" encoding="utf-8"?>
<Oni>
<WMDD id="0">
<Caption>Options</Caption>
<Id>152</Id>
<State>Visible</State>
<Style>Center</Style>
<X>0</X>
<Y>0</Y>
<Width>640</Width>
<Height>480</Height>
<Controls>
[...]
</Controls>
</Instance>
</Oni>
[...] means at least one WMDDControl block.
example
<WMDDControl>
<Text>Options</Text>
<Class>Label</Class>
<Id>0</Id>
<State>1</State>
<Style>1114112</Style>
<X>5</X>
<Y>10</Y>
<Width>70</Width>
<Height>20</Height>
<Font>
<Family>TSFFTahoma</Family>
<Style>Bold</Style>
<Color>255 127 0</Color>
<Size>10</Size>
</Font>
</WMDDControl>
- If you add <WMDDControl> blocks then don't add them under the <WMDDControl> block with TXMB or else your new blocks will be hidden.
- Always the same if <Text> contains "outline"
<Text>outline</Text>
<Class>Title</Class>
<Id>0</Id>
<State>5</State>
<Style>65536</Style>
XML tag
|
type
|
flags and descriptions
|
<Caption>
|
char[256]
|
page name/title
|
<Id>
|
int16
|
page Id; page is looked up by exe
|
<State>
|
flag
|
- Visible
- Disabled
- State04
|
<Style>
|
flag/int32
|
- ThinBorder (01 00 00 00)
- ThickBorder (02 00 00 00)
- TitleBar (04 00 00 00)
- Title (08 00 00 00)
- CloseButton (10 00 00 00)
- RestoreButton (20 00 00 00)
- MinimizeButton (40 00 00 00)
- Center (00 00 01 00)
- 65536 (00 00 01 00)
- 131072 (00 00 02 00)
- 262144 (00 00 04 00)
- 524288 (00 00 08 00)
- 1048576 (00 00 10 00)
- 2097152 (00 00 20 00)
- 4194304 (00 00 40 00)
- 8388608 (00 00 80 00)
|
<X>
|
int16
|
align (in header always 0)
|
<Y>
|
int16
|
align (in header always 0)
|
<Width>
|
int16
|
X dimension (in header always 640 ?)
|
<Height>
|
int16
|
Y dimension (in header always 480 ?)
|
<WMDDControl>
XML tag
|
type
|
flags and descriptions
|
<Text>
|
char[256]
|
- can contain text
- "outline" was always used by bungie for <Class>Title</Class> (it's invisible)
- "WMM_filename"
|
<Class>
|
flag
|
- Desktop (01 00)
- Title (03 00) ("groupbox" or "box" that groups elements together visually)
- Button (04 00) (button text like "OK" or "Close")
- Checkbox (05 00)
- Dialog (06 00)
- Textbox (07 00)
- Listbox (08 00)
- MenuBar (09 00)
- Menu (0A 00)
- Image (0B 00) (TXMB / TXMP / PSpc)
- Dropdown (0C 00) (WMM_ drop-down menu)
- ProgressBar (0D 00)
- RadioButton (0E 00)
- 16 (10 00) (scrollbar; not used in dialogs)
- Slider (11 00)
- Label (14 00) (a <Width> value smaller than the text forces a linebreak) ("text")
|
<Id>
|
int16
|
page Id; page is looked up by exe
|
<State>
|
flag
|
- 1 (visible)
- 2 (disabled)
- 4 (unknown, probably "change texture on click" (used by checkbox))
|
<Style>
|
flag
|
- ThinBorder (01 00 00 00)
- ThickBorder (02 00 00 00)
- TitleBar (04 00 00 00)
- Title (08 00 00 00)
- CloseButton (10 00 00 00)
- RestoreButton (20 00 00 00)
- MinimizeButton (40 00 00 00)
- Center (00 00 01 00)
control specific styles
if box:
- 131072 (00 00 02 00) (draw text background)
- 262144 (00 00 04 00) (draw text)
if button:
- 65536 (00 00 01 00) (draw button)
- 131072 (00 00 02 00) (draw button text)
- 524288 (00 00 08 00) (toggle button like the ones used "in game" for help, diary, etc.)
- 1048576 (00 00 10 00) (default button, it corresponds to the Enter key)
if checkbox:
- 65536 (00 00 01 00) (draw label)
if radiobutton:
- 65536 (00 00 01 00) (draw label)
if edit field:
- 65536 (00 00 01 00) (number only)
if listbox:
- 65536 (00 00 01 00) (draw scrollbar)
- 131072 (00 00 02 00) (alphabetical order)
- 262144 (00 00 04 00) (unselecable)
- 524288 (00 00 08 00) (contains text, without this it contains only "custom" data)
- 1048576 (00 00 10 00) (owner draw, the owner window will draw the list item)
- 2097152 (00 00 20 00) (draw file/folder icons)
if picture:
- 131072 (00 00 02 00) (ignore the picture name; the displayed picture is set at runtime)
if popup menu:
- 65536 (00 00 01 00) (use menu width; doesn't work)
- 131072 (00 00 02 00) (ignore the menu name; the menu is set at runtime)
if text field:
- 131072 (00 00 02 00) (horizontal text align = center)
- 262144 (00 00 04 00) (horizontal text align = right)
- 1048576 (00 00 10 00) (vertical text align = center)
- 8388608 (00 00 80 00) (owner draw (hides text))
if text field:
- 131072 (00 00 02 00) (horizontal text align = center)
- 262144 (00 00 04 00) (horizontal text align = right)
- 1048576 (00 00 10 00) (vertical text align = center)
- 8388608 (00 00 80 00) (owner draw (hides text))
- 65536 (00 00 01 00)
- 131072 (00 00 02 00)
- 262144 (00 00 04 00)
- 524288 (00 00 08 00)
- 1048576 (00 00 10 00)
- 2097152 (00 00 20 00)
- 4194304 (00 00 40 00)
- 8388608 (00 00 80 00)
|
<X>
|
int16
|
align (relative to the top left corner of the window)
|
<Y>
|
int16
|
align (relative to the top left corner of the window)
|
<Width>
|
int16
|
X dimention
|
<Height>
|
int16
|
Y dimention
|
<Family>
|
link32
|
link to TSFF, usually "TSFFTahoma"
|
<Style>
|
flag
|
- Normal (00 00 00 00)
- Bold (01 00 00 00)
- Italic (02 00 00 00)
|
<Color>
|
color32
|
R G B range, e.g. 255 127 0 (for orange)
|
<Size>
|
int16
|
font size is usually 10; 7 for "<Text>outline</Text>"
|