XML:TxtC: Difference between revisions

From OniGalore
mNo edit summary
m (oops)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==[[TxtC]]: text console (page)==
{{XML_File_Header | prev=TXMP | type=TxtC | next=WMCL | name=Text Console}}
{{Template:XMLModdingHints}}
{| border=0 cellspacing=20 cellpadding=0 align=center
| The xml code on this page is compatible with onisplit '''v0.9.61.0'''
|}


===general notes===
==General notes==
* Console text pages can be called via BSL command "text_console". In fact they don't need a console, you can call up a page in any function you like.
* The XML on this page is compatible with OniSplit '''v0.9.61.0'''.
* TxtC's are normally level specific (levelX_...), but could be made global (level0_...).
* Console text pages don't need a console to display them; they can be called up at any time with the BSL command "text_console".
* TxtCs are normally level-specific (level''x''_Final), but could be made global (level0_Final).
* "TxtC" should really have been "CPge", for consistency with DPge, HPge, IPge, OPge and WPge, but hey, we didn't name it.


 
==BSL support==
===BSL support===
: <font style="color:#777">console_activate ''console_id:int''
: <font style="color:#777">console_activate ''console_id:int''
: console_deactivate ''console_id:int''
: console_deactivate ''console_id:int''
Line 16: Line 13:
: text_console ''name:string''
: text_console ''name:string''


Two example functions:


two example functions
  ### Called up by a console
 
  ### called up by a console
  func void console_jump(string ai_name)
  func void console_jump(string ai_name)
  {
  {
Line 26: Line 22:
  }
  }
   
   
  ### called up by a random function, pops up when player performs Konoko's first punch
  ### Pops up onscreen when Konoko performs her first punch
  func just_show_me_a_page
  func just_show_me_a_page
  {
  {
Line 33: Line 29:
  }
  }


 
==XML structure==
===XML structure===
Think of "instances" (#N) as file sections, they go from 1 to N. 0 is the header.
 
Think of "instances" (#N) as file sections, they go from 1 to N. 0 is the header: always "TxtC".


: Every TxtC contains one instance of type IGPA.
: Every TxtC contains one instance of type IGPA.
Line 48: Line 42:
: IGSt means a (text) string
: IGSt means a (text) string


:Take care of the structure and the cake is yours.
:Be mindful of the structure and it's a piece of cake.


{| border=0 cellspacing=20 cellpadding=0 align=right
[[Image:XML_TxtC.jpg|thumb|300px]]
| [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/TxtC.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/TxtC_TN.png]
|}


'''The following IDs are taken from "TxtClevel_1f.xml" and serve as an example:'''
'''The following IDs are taken from "TxtClevel_1f.xml" as an example:'''


: #0 (TxtC instance) links to #1 (IGPA instance)
: #0 (TxtC instance) links to #1 (IGPA instance)
: #1 (IGPA instance) links from #2 up to #4 (IGPG instances, here we have 3 pages as you see)
: #1 (IGPA instance) links from #2 up to #4 (IGPG instances, in this case 3 pages)
: #2 (IGPG instance) links to #32 (IGSA instances)
: #2 (IGPG instance) links to #32 (IGSA instances)
: #3 (IGPG instance) links to #20 (IGSA instances)
: #3 (IGPG instance) links to #20 (IGSA instances)
: #4 (IGPG instance) links to #6 (IGSA instances)
: #4 (IGPG instance) links to #6 (IGSA instances)
: #5 corresponds to the TSFFTahoma placeholder
: #5 corresponds to the TSFFTahoma placeholder
: #6 (IGSA instance) links from #7 up to #19 (IGSt Instances)
: #6 (IGSA instance) links from #7 up to #19 (IGSt instances)
: #20 (IGSA instance) links from #21 up to #31 (IGSt Instances)
: #20 (IGSA instance) links from #21 up to #31 (IGSt instances)
: #32 (IGSA instance) links from #33 up to #43 (IGSt Instances)
: #32 (IGSA instance) links from #33 up to #43 (IGSt instances)


If you modify or create a new file you can use #5 for anything you like because OniSplit reindexes the instances when packing. The TSFFTahoma placeholder doesn't need to be present in your file.
If you modify or create a new file, you can use #5 for anything you like because OniSplit re-indexes the instances when packing. The TSFFTahoma placeholder doesn't need to be present in your file.


 
==XML tags and options==
===XML tags and options===
'''TxtC instance tags'''
'''TxtC instance tags'''
: <Pages> (link to IGPA instance)
: <Pages> (link to IGPA instance)
Line 85: Line 76:
::: '''Bold'''
::: '''Bold'''
::: ''Italic''
::: ''Italic''
:: <Color> ([[wikipedia:RGB_color_model#The_24-bit_RGB_representation|RGB]] range, e.g. <Color>255 0 77</Color>)
:: <Color> ([[wikipedia:RGB_color_model#Numeric_representations|RGB]] range, e.g. <Color>255 0 77</Color>)
:: <Size> (10 and 12 are usually used)
:: <Size> (10 and 12 are usually used)
: <Image> (links to a TXMP or PSpc file)
: <Image> (links to a TXMP or PSpc file)
Line 105: Line 96:
:: <Color>
:: <Color>
:: <Size>
:: <Size>
:: <Flags> (Every IGSt can use 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..)
:: <Flags> (Every IGSt can have its own properties. The <Flag> tag lets 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.)
::: <font style="color:#777">Family</font>
::: <font style="color:#777">Family</font>
::: Style
::: Style
Line 112: Line 103:
:: <Text> (Contains the actual text but can also create a bare paragraph (see example at instance #46). You can use <code>&amp;gt;</code> to produce <code>&gt;</code> and <code>&amp;lt;</code> to produce <code>&lt;</code>.)
:: <Text> (Contains the actual text but can also create a bare paragraph (see example at instance #46). You can use <code>&amp;gt;</code> to produce <code>&gt;</code> and <code>&amp;lt;</code> to produce <code>&lt;</code>.)


 
==Example==
===example===
[[Image:XML_TxtC_modders.jpg|thumb|200px]]
{| border=0 cellspacing=20 cellpadding=0 align=right
| [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/modders.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/modders_preview.png]
|}


  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
Line 129: Line 117:
     </IGPA>
     </IGPA>


You can display a little image if you use the image tag in the IGPG instance. (Either non-animated TXMP or [[OBD_talk:PSpc|PSpc]].)
You can display a small image if you use the image tag in the IGPG instance. (Either a non-animated TXMP or a [[XML:PSpc|PSpc]].)


<Text2> cannot be used for TxtC because there isn't a note/hint field.
<Text2> cannot be used for TxtC because there isn't a note/hint field.
Line 146: Line 134:
     </IGPG>
     </IGPG>


Instance number 5 has a space between the text tags (<Text> </Text>) to produce a new paragraph. A single space isn't valid unless you add a special attribute to the text tag like that "<Text xml:space="preserve"> </Text>".
Instance number 5 has a space between the text tags (<Text> </Text>) to produce a new paragraph. The space won't be preserved unless you add a special attribute to the text tag: "<Text xml:space="preserve"> </Text>".


     <IGSA id='''"3"'''>
     <IGSA id='''"3"'''>
Line 163: Line 151:
             <Flags>Style Color Size</Flags>
             <Flags>Style Color Size</Flags>
         <nowiki></Font></nowiki>
         <nowiki></Font></nowiki>
         <Text>That's a blue caption.</Text>
         <Text>Here's a blue caption.</Text>
     </IGSt>
     </IGSt>
     <IGSt id='''"5"'''>
     <IGSt id='''"5"'''>
Line 183: Line 171:
             <Flags>Color Size</Flags>
             <Flags>Color Size</Flags>
         <nowiki></Font></nowiki>
         <nowiki></Font></nowiki>
         <Text>And that's a white, smaller text.</Text>
         <Text>And this is white, smaller text.</Text>
     </IGSt>
     </IGSt>
  </Oni>
  </Oni>
{{XML}}

Latest revision as of 23:54, 31 March 2021

TxtC : Text Console
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

TXMP << Other file types >> WMCL

switch to OBD page

General notes

  • The XML on this page is compatible with OniSplit v0.9.61.0.
  • Console text pages don't need a console to display them; they can be called up at any time with the BSL command "text_console".
  • TxtCs are normally level-specific (levelx_Final), but could be made global (level0_Final).
  • "TxtC" should really have been "CPge", for consistency with DPge, HPge, IPge, OPge and WPge, but hey, we didn't name it.

BSL support

console_activate console_id:int
console_deactivate console_id:int
console_reset console_id:int (resets a console to initial state)
text_console name:string

Two example functions:

### Called up by a console
func void console_jump(string ai_name)
{
	text_console level_1g
	console_reset 18
}

### Pops up onscreen when Konoko performs her first punch
func just_show_me_a_page
{
	chr_wait_animation 0 KONCOMcomb_p
	text_console level_1f
}

XML structure

Think of "instances" (#N) as file sections, they go from 1 to N. 0 is the header.

Every TxtC contains one instance of type IGPA.
Every IGPA contains a number of instances of type IGPG.
Every IGPG contains a number of instances of type IGSA.
Every IGSA contains a number of instances of type IGSt.
IGPA means a page array (think of it as a little book)
IGPG means a page
IGSA means a (text) string array
IGSt means a (text) string
Be mindful of the structure and it's a piece of cake.
XML TxtC.jpg

The following IDs are taken from "TxtClevel_1f.xml" as an example:

#0 (TxtC instance) links to #1 (IGPA instance)
#1 (IGPA instance) links from #2 up to #4 (IGPG instances, in this case 3 pages)
#2 (IGPG instance) links to #32 (IGSA instances)
#3 (IGPG instance) links to #20 (IGSA instances)
#4 (IGPG instance) links to #6 (IGSA instances)
#5 corresponds to the TSFFTahoma placeholder
#6 (IGSA instance) links from #7 up to #19 (IGSt instances)
#20 (IGSA instance) links from #21 up to #31 (IGSt instances)
#32 (IGSA instance) links from #33 up to #43 (IGSt instances)

If you modify or create a new file, you can use #5 for anything you like because OniSplit re-indexes the instances when packing. The TSFFTahoma placeholder doesn't need to be present in your file.

XML tags and options

TxtC instance tags

<Pages> (link to IGPA instance)

IGPA instance tags

<Pages> (every link represents a page)
<Link> (links to an IGPG instance)

IGPG instance tags

<Font> (defines the font in case it isn't defined in the IGSt instance)
<Family>
TSFFTahoma
<Style>
Normal
Bold
Italic
<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> (not used by TxtC)

IGSA instance tags

<Strings>
<Link> (links to an IGSt instance)

IGSt instance tags

<Font>
<Family>
TSFFTahoma
<Style>
Normal
Bold
Italic
<Color>
<Size>
<Flags> (Every IGSt can have its own properties. The <Flag> tag lets 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.)
Family
Style
Color
Size
<Text> (Contains the actual text but can also create a bare paragraph (see example at instance #46). You can use &gt; to produce > and &lt; to produce <.)

Example

XML TxtC modders.jpg
<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <TxtC id="0">
       <Pages>#1</Pages>
   </TxtC>
   <IGPA id="1">
       <Pages>
           <Link>#2</Link>
       </Pages>
   </IGPA>

You can display a small image if you use the image tag in the IGPG instance. (Either a non-animated TXMP or a PSpc.)

<Text2> cannot be used for TxtC because there isn't a note/hint field.

   <IGPG id="2">
       <Font>
           <Family>TSFFTahoma</Family>
           <Style>Bold</Style>
           <Color>116 208 255</Color>
           <Size>10</Size>
           <Flags>Family Style Color Size</Flags>
       </Font>
       <Image>TXMPlevel31_modders</Image>
       <Text1>#3</Text1>
       <Text2></Text2>
   </IGPG>

Instance number 5 has a space between the text tags (<Text> </Text>) to produce a new paragraph. The space won't be preserved unless you add a special attribute to the text tag: "<Text xml:space="preserve"> </Text>".

   <IGSA id="3">
       <Strings>
           <Link>#4</Link>
           <Link>#5</Link>
           <Link>#6</Link>
       </Strings>
   </IGSA>
   <IGSt id="4">
       <Font>
           <Family></Family>
           <Style>Bold</Style>
           <Color>116 208 255</Color>
           <Size>12</Size>
           <Flags>Style Color Size</Flags>
       </Font>
       <Text>Here's a blue caption.</Text>
   </IGSt>
   <IGSt id="5">
       <Font>
           <Family></Family>
           <Style>Normal</Style>
           <Color>0 0 0 0</Color>
           <Size>0</Size>
           <Flags></Flags>
       </Font>
       <Text xml:space="preserve"> </Text>
   </IGSt>
   <IGSt id="6">
       <Font>
           <Family></Family>
           <Style>Normal</Style>
           <Color>150 150 150</Color>
           <Size>8</Size>
           <Flags>Color Size</Flags>
       </Font>
       <Text>And this is white, smaller text.</Text>
   </IGSt>
</Oni>