|DPge : Diary Page|
- The XML code on this page is based on OniSplit v0.9.61.0.
- DPge*.oni are global (they can be found in AE/AEInstaller/vanilla/level0_Final.dat).
- A diary page can be read for the first time when the player enters the level indicated by the <LevelNumber> tag.
- An IGPA instance here will make Oni crash. But <PageNumber> let you create more diary pages for a day.
- The game can load at most 60 DPge instances. 32 DPge instances exist in the original game.
Think of "instances" (#N) as file sections: they run from 1 to N. 0 is the header (it defines the file type, here "DPge").
- Every DPge contains one instance of type IGPG.
- Every IGPG contains two instances of type IGSA.
- Every IGSA contains a number of instances of type IGSt.
- IGPG means a page
- IGSA means a (text) string array
- IGSt means a (text) string
Example from vanilla file "DPgelev_19_pg_01":
- #0 (DPge instance) links to #1 (IGPG instance)
- #1 (IGPG instance) links to #4 and #5 (IGSA instances)
- #2 (unknown placeholder, only presented in original files) (can be ignored)
- #3 (unknown placeholder, only presented in original files) (can be ignored)
- #4 (IGSA instance) links to #7 (IGSt instance)
- #5 (IGSA instance) links to #6 (IGSt instance)
WPge instance tags
- <LevelNumber> (page can be read for first time when player enters this level)
- <PageNumber> (diary page number)
- 0 (normal page)
- 1 (displays message "New combat move learned. (F1)", which can be avoided with BSL command "ui_suppress_prompt = 1")
- <Page> (link to IGPG instance)
IGPG instance tags
- <Font> (defines the font in case it isn't defined in the IGSt instance; the style is bold by default)
- <Color> (RGB range, e.g. <Color>255 0 77</Color>)
- <Size> (10 and 12 are usually used)
- <Image> (links to a TXMP or PSpc file)
- <Text1> (links to an IGSA instance)
- <Text2> (links to an IGSA instance (hint field))
IGSA instance tags
- <Link> (links to an IGSt instance)
IGSt instance tags
- <Flags> (Every IGSt can have its own properties. The <Flag> tag let you enable these. Add "Size" when you want to get a new font size, add "Color" when you want to get a new font color, etc.)
- <Text> (contains the actual text, but can also create a bare paragraph)
<?xml version="1.0" encoding="utf-8"?> <Oni> <DPge id="0"> <LevelNumber>19</LevelNumber> <PageNumber>1</PageNumber> <IsLearnedMove>1</IsLearnedMove> <Page>#1</Page> </DPge>
You can display a small image if you use the image tag in the IGPG instance (either a non-animated TXMP or a PSpc).)=
<IGPG id="1"> <Font> <Family>TSFFTahoma</Family> <Style>Bold</Style> <Color>255 127 0</Color> <Size>12</Size> <Flags>Family Style Color Size</Flags> </Font> <Image>TXMPLevel19move</Image> <Text1>#4</Text1> <Text2>#5</Text2> </IGPG> <IGSA id="4"> <Strings> <Link>#7</Link> </Strings> </IGSA> <IGSA id="5"> <Strings> <Link>#6</Link> </Strings> </IGSA>
A space between the text tags (<Text> </Text>) can produce a new paragraph. The import ignores that so far but you can fix it by writing "<Text xml:space="preserve"> </Text>" (not used in this example).
<IGSt id="7"> <Font> <Family></Family> <Style>Normal</Style> <Color>0 0 0 0</Color> <Size>0</Size> <Flags></Flags> </Font> <Text>Stepping Disarm</Text> </IGSt> <IGSt id="6"> <Font> <Family>TSFFTahoma</Family> <Style>Bold</Style> <Color>191 191 191</Color> <Size>10</Size> <Flags>Family Style Color Size</Flags> </Font> <Text>When standing in front of an armed opponent, press FORWARD + KICK. Disarm your opponent with a kick to the face!!</Text> </IGSt> </Oni>