Difference between revisions of "Action12"
(No difference)
|
Revision as of 22:28, 11 February 2006
Load font glyphs
Action 12
Load font glyphs
-=Description=-
This action allows defining glyphs for any [1] character in the BMP (Basic Multilingual Plane), i.e. up to U+FFFF.
Available since 2.0.1 alpha 73.
-=Format=-
The data looks as follows:
-+<sprite-number> * <length> 12 <num-def> <nowiki>(<font> <num-char> <base-char>){n}</nowiki>+-
||Element|Size|Description
<sprite-number>|dec|A sequential sprite number
<length>|dec|The total number of bytes in the action
12|B|Action 12
num-def|B|Number of definitions
font|B|Font for which to provide glyphs
num-char|B|Number of consecutive glyphs
base-char|W|First Unicode character for which to provide glyphs||
Following the action 12 must be the real sprites for all glyphs, as many sprites as all <num-char> added up.
-=Filling in the terms=-
sprite-number
The current sprite number.
length
The total number of bytes in this action 12.
num-def
This specifies how many definitions follow, each having <font>, <basechar> and <numchar>.
font
The font to define glyphs for. The value can be 0 for the normal size, 1 for the small size, or 2 for the large size font.
num-char
The number of characters in the range.
base-char
The first Unicode character in a range to provide glyphs for. This can be any Unicode character in the BMP.
Note that all characters of a definition (i.e., <font> <basechar> <numchar> triplet) must fit within a "block" of 128 characters, i.e. you cannot define characters U+00E0..U+011F with one definition; instead you must split it into U+00E0..U+00FF and U+0100..U+011F because those are two different blocks.
-=Example=-
-+ 583 * 9 12 02 00 08 F8 00 0C 00 01+-
||Byte|Meaning
583|<sprite-number>
9|<length> of the action in bytes; start counting at 12 (<action>)
12|<action>: sets this pseudo-sprite to function as action 12
02|<num-def>: we're defining two ranges of characters
00|<font>: first range, defining font 0 (normal size)
08|<num-char>: defining 8 characters in a row
F8 00|<base-char>: character U+00F8 is the first character
00|<font>: second range, also defining font 0 (normal size)
0C|<num-char>: defining another 12 characters
00 01|<base-char>: character U+0100 is the first character||
Therefore, this action 12 defines glyphs for Unicode characters U+00F8..U+010B. They are split into two definitions because a definition cannot cross a block boundary.
After this action 12 follow 20 real sprites containing the glyphs for the above characters.