XML:WMDD: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (link fix)
(clarifying discrepancy between Oni and OniSplit terminology)
Line 140: Line 140:
|
|
: Desktop (01 00)
: Desktop (01 00)
: Title (03 00)
: Title (03 00) ("groupbox" or "box" that groups elements together visually)
: Button (04 00) (button text like "OK" or "Close")
: Button (04 00) (button text like "OK" or "Close")
: Checkbox (05 00)
: Checkbox (05 00)
Line 154: Line 154:
: 16 (10 00) (scrollbar; not used in dialogs)
: 16 (10 00) (scrollbar; not used in dialogs)
: Slider (11 00)
: Slider (11 00)
: Label (14 00) (page caption; too low <Width> value forces line break)
: Label (14 00) (a <Width> value smaller than the text forces a linebreak) ("text")
|-
|-
| <Id>
| <Id>
Line 165: Line 165:
:1 (visible)
:1 (visible)
:2 (disabled)
:2 (disabled)
:4 (unknown, propably "change texture on click" (used by checkbox))
:4 (unknown, probably "change texture on click" (used by checkbox))
|-
|-
|valign=top| <Style>
|valign=top| <Style>

Revision as of 22:45, 29 December 2020

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.png
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>
  • TXMB note:
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>


header

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>"