WMDD : WM 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 on this page is compatible with OniSplit v0.9.61.0.
- "WM" stands for "Window Manager".
- WMDD files are global (level0_Final.dat).
- A WMDD file contains either a screen with controls or a dialog with buttons (e.g. WMDDdialog_ChangeRestart).
- Does WMDDdialog_text_console define the size of "text consoles" as 460x410?
- Oni's out-of-game windows overlay each other. The parent window becomes visible if you remove the background (see image on right).
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 have a TXMB in your WMDD, don't put additional <WMDDControl> blocks under the block with the TXMB or your new blocks will be hidden.
- The block is 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, looked up by the game application
|
<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 (always 0 in the header)
|
<Y>
|
int16
|
align (always 0 in the header)
|
<Width>
|
int16
|
X dimension (always 640 in the header?)
|
<Height>
|
int16
|
Y dimension (always 480 in the header?)
|
<WMDDControl>
XML tag
|
Type
|
Flags and descriptions
|
<Text>
|
char[256]
|
- Can contain text
- "outline" was always used by Bungie West 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) (a TXMB, TXMP or 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, looked up by game application
|
<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
Groupbox/box:
- 131072 (00 00 02 00) (draw text background)
- 262144 (00 00 04 00) (draw text)
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 on the Help screen, Diary screen, etc.)
- 1048576 (00 00 10 00) (default button, triggered by the Enter key)
Checkbox:
- 65536 (00 00 01 00) (draw label)
Radio button:
- 65536 (00 00 01 00) (draw label)
Edit field:
- 65536 (00 00 01 00) (number only)
Listbox:
- 65536 (00 00 01 00) (draw scrollbar)
- 131072 (00 00 02 00) (alphabetize items)
- 262144 (00 00 04 00) (items are not selectable)
- 524288 (00 00 08 00) (contains text, without this it contains only "custom" data)
- 1048576 (00 00 10 00) (owner window will draw the list item)
- 2097152 (00 00 20 00) (draw file/folder icons)
Picture:
- 131072 (00 00 02 00) (ignore the picture name; the displayed picture is set at runtime)
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)
Text field:
- 131072 (00 00 02 00) (horizontally-centered text)
- 262144 (00 00 04 00) (right-aligned text)
- 1048576 (00 00 10 00) (vertically-centered text)
- 8388608 (00 00 80 00) (owner draw (hides text))
|
<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 dimension
|
<Height>
|
int16
|
Y dimension
|
<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
|
RGB range, e.g. 255 127 0 (for orange)
|
<Size>
|
int16
|
font size is usually 10; 7 for "<Text>outline</Text>"
|