XML:PSpc

From OniGalore
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
PSpc : Part Specification
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

PNTA << Other file types >> PSpL

switch to OBD page

General information

  • The XML on this page is compatible with OniSplit v0.9.61.0.
  • This resource uses the concept of the nine-slice GUI to construct IGPGs (in-game pages), which are used by DPge, HPge, IPge, OPge, WPge and TxtC.
  • You could attempt to simulate image alignment by using the image you want displayed as a corner, then supplying a transparent texture for the other components.
  • Please note that animated TXMPs doesn't work in a PSpc.

XML structure

1 4 7
2 5 8
3 6 9

There are 9 <PSpcPoint> tags under <TopLeft> and nine <PSpcPoint>s under <RightBottom>. The nth <PSpcPoint> tag under <TopLeft> and the nth <PSpcPoint> under <RightBottom> belong together; the entries under <TopLeft> and <RightBottom> comprise pairs of points which define a single tile out of nine (this is a bit confusing, but the XML simply reflects how Oni stores them). The order of the tiles is top to bottom, left to right.

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <PSpc id="0">
       <TopLeft>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           [...]
       </TopLeft>
       <RightBottom>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           [...]
       </RightBottom>
       <Texture>TXMP...</Texture>
   </PSpc>
</Oni>

Example

TXMPh_19 is the only image appearing in TxtClevel_19a, but a PSpc divides it into 3 parts in order to stretch it across the top of the page. Each part is framed by the pixel coordinates in the XML below. As always with nine-slice tiling, the corners do not stretch, and the border tiles and the center tile do. Note that only parts 1, 4, and 7 are used in the following PSpc.

TXMPh_19
Color-coded version: the bluish half is tile 1, the single line of pixels in the center is tile 4 (this gets stretched horizontally), and the orange half is tile 7.

Coordinates of 1: {0, 0} to {64, 32}
Coordinates of 4: {64, 0} to {64, 32}
Coordinates of 7: {65, 0} to {128, 32}
which produces:

PSpc parts ingame.png
<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <PSpc id="0">
       <LeftTop>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>64</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>65</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
       </LeftTop>
       <RightBottom>
           <PSpcPoint>
               <X>64</X>
               <Y>32</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>64</X>
               <Y>32</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>128</X>
               <Y>32</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
       </RightBottom>
       <Texture>TXMPh_19</Texture>
   </PSpc>
</Oni>