tags definition update to accomodate more weirdness

This commit is contained in:
minjaesong
2018-08-11 04:39:44 +09:00
parent 4ce58cf5d1
commit 1440908820
7 changed files with 116 additions and 109 deletions

145
.idea/workspace.xml generated
View File

@@ -9,11 +9,8 @@
<list default="true" id="22c5bc80-996c-4846-b173-7dc8c2096fe3" name="Default" comment=""> <list default="true" id="22c5bc80-996c-4846-b173-7dc8c2096fe3" name="Default" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/CONTRIBUTING.md" beforeDir="false" afterPath="$PROJECT_DIR$/CONTRIBUTING.md" afterDir="false" /> <change beforePath="$PROJECT_DIR$/CONTRIBUTING.md" beforeDir="false" afterPath="$PROJECT_DIR$/CONTRIBUTING.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/FontTestGDX/demotext.txt" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/demotext.txt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/FontDemoGDX.jar" beforeDir="false" afterPath="$PROJECT_DIR$/FontDemoGDX.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/FontTestGDX/lib/TerrarumSansBitmap.jar" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/lib/TerrarumSansBitmap.jar" afterDir="false" /> <change beforePath="$PROJECT_DIR$/TerrarumSansBitmap.jar" beforeDir="false" afterPath="$PROJECT_DIR$/TerrarumSansBitmap.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/devanagari_bengali_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/devanagari_bengali_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/thai_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/thai_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/demo.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/demo.PNG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" beforeDir="false" afterPath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" beforeDir="false" afterPath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" afterDir="false" />
</list> </list>
@@ -32,11 +29,11 @@
<splitter split-orientation="horizontal" split-proportion="0.5"> <splitter split-orientation="horizontal" split-proportion="0.5">
<split-first> <split-first>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false"> <file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt"> <entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456"> <state relative-caret-position="-545">
<caret line="836" column="26" selection-start-line="836" selection-start-column="26" selection-end-line="836" selection-end-column="26" /> <caret line="529" column="39" lean-forward="true" selection-start-line="529" selection-start-column="39" selection-end-line="529" selection-end-column="39" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -44,13 +41,13 @@
<file leaf-file-name="GlyphProps.kt" pinned="false" current-in-tab="false"> <file leaf-file-name="GlyphProps.kt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt"> <entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="156"> <state relative-caret-position="403">
<caret line="12" column="33" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="33" /> <caret line="31" column="31" lean-forward="true" selection-start-line="31" selection-start-column="31" selection-end-line="31" selection-end-column="31" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="demo.PNG" pinned="false" current-in-tab="true"> <file leaf-file-name="demo.PNG" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/demo.PNG"> <entry file="file://$PROJECT_DIR$/demo.PNG">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="images" />
</entry> </entry>
@@ -71,8 +68,8 @@
<file leaf-file-name="FontTestGDX.kt" pinned="false" current-in-tab="false"> <file leaf-file-name="FontTestGDX.kt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt"> <entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="547"> <state relative-caret-position="364">
<caret line="128" column="31" lean-forward="true" selection-start-line="128" selection-start-column="31" selection-end-line="128" selection-end-column="31" /> <caret line="28" column="35" selection-start-line="28" selection-start-column="35" selection-end-line="28" selection-end-column="35" />
<folding> <folding>
<element signature="e#0#384#0" expanded="true" /> <element signature="e#0#384#0" expanded="true" />
</folding> </folding>
@@ -80,11 +77,11 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="demotext.txt" pinned="false" current-in-tab="true"> <file leaf-file-name="demotext.txt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/FontTestGDX/demotext.txt"> <entry file="file://$PROJECT_DIR$/demotext.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state> <state relative-caret-position="247">
<caret column="121" selection-start-column="121" selection-end-column="121" /> <caret line="19" column="17" selection-start-line="19" selection-start-column="17" selection-end-line="19" selection-end-column="17" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -92,18 +89,18 @@
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false"> <file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt"> <entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="547"> <state relative-caret-position="2197">
<caret line="494" column="101" selection-start-line="494" selection-start-column="101" selection-end-line="494" selection-end-column="101" /> <caret line="682" selection-start-line="682" selection-end-line="682" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="CONTRIBUTING.md" pinned="false" current-in-tab="false"> <file leaf-file-name="CONTRIBUTING.md" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md"> <entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]"> <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
<state split_layout="FIRST"> <state split_layout="FIRST">
<first_editor relative-caret-position="402"> <first_editor relative-caret-position="272">
<caret line="62" column="132" lean-forward="true" selection-start-line="62" selection-start-column="132" selection-end-line="62" selection-end-column="132" /> <caret line="49" column="7" selection-start-line="49" selection-start-column="7" selection-end-line="49" selection-end-column="7" />
</first_editor> </first_editor>
<second_editor> <second_editor>
<js_state /> <js_state />
@@ -189,12 +186,12 @@
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/testbed/FontTestGDX.kt" /> <option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/testbed/FontTestGDX.kt" />
<option value="$PROJECT_DIR$/LICENSE.md" /> <option value="$PROJECT_DIR$/LICENSE.md" />
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt" /> <option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt" />
<option value="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" />
<option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" />
<option value="$PROJECT_DIR$/CONTRIBUTING.md" />
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" />
<option value="$PROJECT_DIR$/FontTestGDX/demotext.txt" /> <option value="$PROJECT_DIR$/FontTestGDX/demotext.txt" />
<option value="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" />
<option value="$PROJECT_DIR$/CONTRIBUTING.md" />
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" />
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" />
</list> </list>
</option> </option>
</component> </component>
@@ -256,6 +253,7 @@
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap" />
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\FontTestGDX\src" /> <recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\FontTestGDX\src" />
</key> </key>
</component> </component>
@@ -478,7 +476,7 @@
<window_info anchor="bottom" id="Version Control" order="7" /> <window_info anchor="bottom" id="Version Control" order="7" />
<window_info anchor="bottom" id="Terminal" order="7" /> <window_info anchor="bottom" id="Terminal" order="7" />
<window_info id="Designer" order="2" /> <window_info id="Designer" order="2" />
<window_info content_ui="combo" id="Project" order="0" weight="0.13859275" /> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.13859275" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info id="UI Designer" order="2" /> <window_info id="UI Designer" order="2" />
@@ -529,25 +527,6 @@
<option name="FILTER_TARGETS" value="false" /> <option name="FILTER_TARGETS" value="false" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="1404">
<caret line="108" selection-start-line="108" selection-end-line="108" />
</first_editor>
<second_editor>
<js_state />
</second_editor>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="6071">
<caret line="531" column="21" selection-start-line="531" selection-start-column="21" selection-end-line="531" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md"> <entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]"> <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
<state split_layout="SPLIT"> <state split_layout="SPLIT">
@@ -567,7 +546,7 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/FontTestGDX/demotext.txt"> <entry file="file://$PROJECT_DIR$/demotext.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state> <state>
<caret selection-end-line="1" selection-end-column="43" /> <caret selection-end-line="1" selection-end-column="43" />
@@ -607,7 +586,7 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/FontTestGDX/demotext.txt"> <entry file="file://$PROJECT_DIR$/demotext.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state> <state>
<caret selection-end-line="1" selection-end-column="43" /> <caret selection-end-line="1" selection-end-column="43" />
@@ -859,6 +838,13 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/TextureRegionPack.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="117">
<caret line="33" column="6" selection-start-line="33" selection-start-column="6" selection-end-line="33" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md"> <entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]"> <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
<state split_layout="FIRST"> <state split_layout="FIRST">
@@ -871,18 +857,38 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt"> <entry file="file://$PROJECT_DIR$/demotext.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="156"> <state relative-caret-position="247">
<caret line="12" column="33" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="33" /> <caret line="19" column="17" selection-start-line="19" selection-start-column="17" selection-end-line="19" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/demo.PNG">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="jar://$PROJECT_DIR$/lib/gdx.jar!/com/badlogic/gdx/files/FileHandle.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="260">
<caret line="118" column="39" selection-start-line="118" selection-start-column="32" selection-end-line="118" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="364">
<caret line="28" column="35" selection-start-line="28" selection-start-column="35" selection-end-line="28" selection-end-column="35" />
<folding>
<element signature="e#0#384#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md"> <entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]"> <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
<state split_layout="FIRST"> <state split_layout="FIRST">
<first_editor relative-caret-position="402"> <first_editor relative-caret-position="272">
<caret line="62" column="132" lean-forward="true" selection-start-line="62" selection-start-column="132" selection-end-line="62" selection-end-column="132" /> <caret line="49" column="7" selection-start-line="49" selection-start-column="7" selection-end-line="49" selection-end-column="7" />
</first_editor> </first_editor>
<second_editor> <second_editor>
<js_state /> <js_state />
@@ -890,30 +896,17 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="403">
<caret line="31" column="31" lean-forward="true" selection-start-line="31" selection-start-column="31" selection-end-line="31" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt"> <entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="547"> <state relative-caret-position="-545">
<caret line="494" column="101" selection-start-line="494" selection-start-column="101" selection-end-line="494" selection-end-column="101" /> <caret line="529" column="39" lean-forward="true" selection-start-line="529" selection-start-column="39" selection-end-line="529" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="547">
<caret line="128" column="31" lean-forward="true" selection-start-line="128" selection-start-column="31" selection-end-line="128" selection-end-column="31" />
<folding>
<element signature="e#0#384#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/demo.PNG">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/FontTestGDX/demotext.txt">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="121" selection-start-column="121" selection-end-column="121" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -923,7 +916,7 @@
<state key="ArtifactsStructureConfigurable.UI"> <state key="ArtifactsStructureConfigurable.UI">
<settings> <settings>
<artifact-editor /> <artifact-editor />
<last-edited>FontDemoGDX</last-edited> <last-edited>TerrarumSansBitmap</last-edited>
<splitter-proportions> <splitter-proportions>
<option name="proportions"> <option name="proportions">
<list> <list>

View File

@@ -47,15 +47,18 @@ Green-tinted area (should be 10 px tall) contains the tags. Tags are defined as
0 -+ 0 Align 1 Align 0 Align 1 Align before 0 -+ 0 Align 1 Align 0 Align 1 Align before
1 -+ 0 left 0 right 1 centre 1 the glyph 1 -+ 0 left 0 right 1 centre 1 the glyph
0 == Write on top of prev chars (e.g. diacritics) 0 == Write on top of prev chars (e.g. diacritics)
1 == Diacritics stack 0:upward/1:downward 1 == 0 Stack 1 Stack 0 Before 1 Up &
(MSB) X == undefined, should be 0 (MSB) 0 == 0 up 0 down 1 &After 1 Down (e.g. U+0C48)
NOTE: If glyphs are right or centre aligned, they must be aligned in the NOTE: If the diacritics comes before AND after the glyph (e.g. U+103C),
same way inside of the bitmap; the program assumes every variable- "Align before the glyph" must be set too.
width glyphs to have a width of 15, regardless of the tagged width. If glyphs are right or centre aligned, they must be aligned in
If the diacritic is aligned before the glyph, the diacritic itself the same way inside of the bitmap; the program assumes every vari-
is always assumed as left-aligned, as this font will swap position able-width glyphs to have a width of 15, regardless of the tagged
of said diacritic and the glyph right before it. width.
If the diacritic is aligned before the glyph, the diacritic it-
self is always assumed as left-aligned, as this font will exchange
position of said diacritic and the glyph right before it.
``` ```
![Visual representation of left/right/centre align](alignment_illustration.jpg) ![Visual representation of left/right/centre align](alignment_illustration.jpg)

Binary file not shown.

View File

@@ -23,7 +23,7 @@ class FontTestGDX : Game() {
lateinit var camera: OrthographicCamera lateinit var camera: OrthographicCamera
override fun create() { override fun create() {
font = GameFontBase("./assets", flipY = false, errorOnUnknownChar = false) // must test for two flipY cases font = GameFontBase("./assets", flipY = false, errorOnUnknownChar = true) // must test for two flipY cases
val inTextFile = Gdx.files.internal("./demotext.txt") val inTextFile = Gdx.files.internal("./demotext.txt")
val reader = inTextFile.reader("UTF-8") val reader = inTextFile.reader("UTF-8")

Binary file not shown.

View File

@@ -9,13 +9,18 @@ data class GlyphProps(
val alignWhere: Int, val alignWhere: Int,
val alignXPos: Int, val alignXPos: Int,
val rtl: Boolean = false, val rtl: Boolean = false,
val diacriticsStackDown: Boolean = false, val stackWhere: Int = 0
val diacriticsBeforeGlyph: Boolean = false
) { ) {
companion object { companion object {
const val LEFT = 0 const val ALIGN_LEFT = 0
const val RIGHT = 1 const val ALIGN_RIGHT = 1
const val CENTRE = 2 const val ALIGN_CENTRE = 2
const val ALIGN_BEFORE = 3
const val STACK_UP = 0
const val STACK_DOWN = 1
const val STACK_BEFORE_N_AFTER = 2
const val STACK_UP_N_DOWN = 3
} }
constructor(width: Int, tags: Int) : this( constructor(width: Int, tags: Int) : this(
@@ -24,7 +29,6 @@ data class GlyphProps(
tags.ushr(5).and(3), tags.ushr(5).and(3),
tags.ushr(1).and(15), tags.ushr(1).and(15),
tags.and(1) == 1, tags.and(1) == 1,
tags.ushr(8).and(1) == 1, tags.ushr(8).and(3)
tags.ushr(5).and(3) == 3
) )
} }

View File

@@ -26,11 +26,9 @@ package net.torvald.terrarumsansbitmap.gdx
import com.badlogic.gdx.Gdx import com.badlogic.gdx.Gdx
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Pixmap
import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.* import com.badlogic.gdx.graphics.g2d.*
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import net.torvald.terrarumsansbitmap.GlyphProps import net.torvald.terrarumsansbitmap.GlyphProps
import java.io.BufferedOutputStream import java.io.BufferedOutputStream
import java.io.File import java.io.File
@@ -485,15 +483,15 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
val alignmentOffset = when (thisProp.alignWhere) { val alignmentOffset = when (thisProp.alignWhere) {
GlyphProps.LEFT -> 0 GlyphProps.ALIGN_LEFT -> 0
GlyphProps.RIGHT -> thisProp.width - W_VAR_INIT GlyphProps.ALIGN_RIGHT -> thisProp.width - W_VAR_INIT
GlyphProps.CENTRE -> Math.floor((thisProp.width - W_VAR_INIT) / 2.0).toInt() GlyphProps.ALIGN_CENTRE -> Math.floor((thisProp.width - W_VAR_INIT) / 2.0).toInt()
else -> 0 // implies "diacriticsBeforeGlyph = true" else -> 0 // implies "diacriticsBeforeGlyph = true"
} }
if (!thisProp.writeOnTop) { if (!thisProp.writeOnTop) {
posXbuffer[charIndex] = posXbuffer[charIndex] =
if (itsProp.alignWhere == GlyphProps.RIGHT) if (itsProp.alignWhere == GlyphProps.ALIGN_RIGHT)
posXbuffer[nonDiacriticCounter] + W_VAR_INIT + alignmentOffset + interchar posXbuffer[nonDiacriticCounter] + W_VAR_INIT + alignmentOffset + interchar
else else
posXbuffer[nonDiacriticCounter] + itsProp.width + alignmentOffset + interchar posXbuffer[nonDiacriticCounter] + itsProp.width + alignmentOffset + interchar
@@ -504,11 +502,11 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
else { else {
// set X pos according to alignment information // set X pos according to alignment information
posXbuffer[charIndex] = when (thisProp.alignWhere) { posXbuffer[charIndex] = when (thisProp.alignWhere) {
GlyphProps.LEFT -> posXbuffer[nonDiacriticCounter] GlyphProps.ALIGN_LEFT -> posXbuffer[nonDiacriticCounter]
GlyphProps.RIGHT -> { GlyphProps.ALIGN_RIGHT -> {
posXbuffer[nonDiacriticCounter] - (W_VAR_INIT - itsProp.width) posXbuffer[nonDiacriticCounter] - (W_VAR_INIT - itsProp.width)
} }
GlyphProps.CENTRE -> { GlyphProps.ALIGN_CENTRE -> {
val alignXPos = if (itsProp.alignXPos == 0) itsProp.width.div(2) else itsProp.alignXPos val alignXPos = if (itsProp.alignXPos == 0) itsProp.width.div(2) else itsProp.alignXPos
posXbuffer[nonDiacriticCounter] + alignXPos - (W_VAR_INIT - 1).div(2) posXbuffer[nonDiacriticCounter] + alignXPos - (W_VAR_INIT - 1).div(2)
@@ -518,13 +516,22 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
// set Y pos according to diacritics position // set Y pos according to diacritics position
if (thisProp.diacriticsStackDown) { when (thisProp.stackWhere) {
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter GlyphProps.STACK_DOWN -> {
stackDownwardCounter++ posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
} stackDownwardCounter++
else { }
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter GlyphProps.STACK_UP -> {
stackUpwardCounter++ posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
stackUpwardCounter++
}
GlyphProps.STACK_UP_N_DOWN -> {
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
stackDownwardCounter++
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
stackUpwardCounter++
}
// for BEFORE_N_AFTER, do nothing in here
} }
} }
} }
@@ -985,7 +992,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
// swap position of {letter, diacritics that comes before the letter} // swap position of {letter, diacritics that comes before the letter}
i = 1 i = 1
while (i <= seq.lastIndex) { while (i <= seq.lastIndex) {
if ((glyphProps[seq[i]] ?: nullProp).diacriticsBeforeGlyph) { if ((glyphProps[seq[i]] ?: nullProp).alignWhere == GlyphProps.ALIGN_BEFORE) {
val t = seq[i - 1] val t = seq[i - 1]
seq[i - 1] = seq[i] seq[i - 1] = seq[i]
seq[i] = t seq[i] = t