From 73c4e96359c31497db6ddc5293eb4d5dcb5d0615 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 12 Jul 2017 22:24:34 +0900 Subject: [PATCH] vietnamese: it was horn, not comma... --- assets/latinExt_additional_variable.tga | Bin 327698 -> 327724 bytes .../terrarumsansbitmap/gdx/GameFontBase.kt | 22 ++++++++++++++---- .../slick2d/GameFontBase.kt | 22 ++++++++++++++---- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/assets/latinExt_additional_variable.tga b/assets/latinExt_additional_variable.tga index 1afe736d3b6170623cdcbc4292e8f9916445db91..2e4cced116f04f2497ea5c05f98f6d88e39ae214 100644 GIT binary patch delta 2616 zcmeHJUuauZ7~eVfKqEvbBf@YAi!f-w91SC4CaDINNeh`4%_L$kOz6WN8puN@gLM$0 z;D0cl!uKG7f)fKa(2zkUR1x%{4=apy`gX-W`O*u*_B1N^`_8>LS=SWwSp(;u?|kRq zcYf!0eqX+5Cf1vYje4%7W5%1ve3R-+VLxcaP5p_y@zQ1TesPvf>dZ2nCs4}6q3GQ* z-MfWwbdKB~M8a$wkCA_0bfPKb9Tz3zsZ2N@i%xJkL8)`+U=MpG~?cd&~+#{V#DE+nhG<&2F#b*94cH|#d;chm}uB)QM4P1-Js+Ms(~ zWhJ+75PEO6^d{FU{ON?A4zJqMm9S}pSu*ZRrIua_eYeS7m7i1hS7(uzt@4b(;4s@# zth97-v};eVtDe5+1RnjJTns!NLGGN0_w}W6(zJIYz5pXIbia%P31GM{E5?5}-_mx=Hcb(S;Cba0jj=_bnVUY5@ak;ca6DOO<(!;!n{0Dzl-d zDYu%jFu3Q@B?N!=IiZQ(*A0#f~)1GeuWtZ5@Rss4h~An&3~()5~~XEY-&)dG&J ztCj{cK`CyxG^odvsc&pJ7##y(g}!@plN*@2WA6b6vbg?V|Hp9fcZ%RZ!?;)XLq0ri zH$&2l-ixJ^zpdmL1^P`rc>DnlU*Z^JC{BkAFp;1CBwgR;-0(2}gi6SdP<0~&M!lTcTKkF2Xp3IQCJ_PB07>RxdEmaMRz(?5i z&_lOVc%Xe_$NVHRyf))Dfp$mFF_+_JflIYW@)Z{Lp6Yp;S{qk4W;V}ZlbQ_ zgTWnvW{CDww#$OvHCiDd9fG;1=AivhF~E7RR>CWr)9j`LSRzoZ>t9JxTiaY>4H zc7sP5m$%_=o7Enb(upudL|Ext*sm!WizJ@r}?FHRt(FUK+B}MD9%o$Bg12?pku;-JwH$Rid(o>@3sdNPYoH~gP zEQbgC7MbhP#VF`km>WhI2Z1Z^NZcdqxD7$(Fn&C*Bf>eG1OA;w;nW}|2Qdm}ond+r zZW3x8RQa9{?dn$sL!JS&HZ?=E8i-0nHXaJ_0d-F3V_S6o1p1>8?BkNo4dIvv{!FV< z^T|b+JwFtfq`e}%knpbMCAuuW=)noWgFuAWPqZ3dkI=w0%5k_ksO2q=f#M*GFL{#? zb#CVA@`hx@9R zO_NrG(v*@!EhYG)6pk;-ULP%V*pG-J4`!c&Ofjg9P@L}H26t*$7{4fGdD~&)f?D+N zeTQNKwrjRhEX%q%uZ(+*3H$1t-%|~(fKy`Q^b9~{=P2eQdXHjM#9>ik?^TEx_0a|N zR1o^|xZu}FmZj%N0<7ZXBP`;5h^0MpV;u9Tbiw}Y=i}jDkhRK_YrVd;JbNB+yV}!7Zxto zW>bLxd|zFotzklmiCr~#^RyYg*_x$u+FKTW4&|Fz9pa4K;3xh5+*A4{WteuA8PFO~ SQum!0!%x9aZ8|aS{O2FZG6MPl diff --git a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt index 43610e5..6b87290 100644 --- a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt @@ -122,6 +122,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo private fun isIPA(c: Char) = c.toInt() in codeRange[SHEET_IPA_VARW] private fun isColourCodeHigh(c: Char) = c.toInt() in 0b110110_1111000000..0b110110_1111111111 private fun isColourCodeLow(c: Char) = c.toInt() in 0b110111_0000000000..0b110111_1111111111 + private fun isLatinExtAdd(c: Char) = c.toInt() in 0x1E00..0x1EFF @@ -170,6 +171,9 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo private fun ipaIndexX(c: Char) = (c.toInt() - 0x250) % 16 private fun ipaIndexY(c: Char) = (c.toInt() - 0x250) / 16 + private fun latinExtAddX(c: Char) = (c.toInt() - 0x1E00) % 16 + private fun latinExtAddY(c: Char) = (c.toInt() - 0x1E00) / 16 + private fun getColour(charHigh: Char, charLow: Char): Color { // input: 0x10ARGB, out: RGBA8888 val codePoint = Character.toCodePoint(charHigh, charLow) @@ -204,15 +208,16 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo SHEET_THAI_VARW, SHEET_HAYEREN_VARW, SHEET_KARTULI_VARW, - SHEET_IPA_VARW + SHEET_IPA_VARW, + SHEET_LATIN_EXT_ADD ) private val fontParentDir = if (fontDir.endsWith('/') || fontDir.endsWith('\\')) fontDir else "$fontDir/" private val fileList = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!! "ascii_variable.tga", "hangul_johab.tga", - "LatinExtA_variable.tga", - "LatinExtB_variable.tga", + "latinExtA_variable.tga", + "latinExtB_variable.tga", "kana.tga", "cjkpunct.tga", "wenquanyi.tga.gz", @@ -225,6 +230,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo "kartuli_variable.tga", "ipa_ext_variable.tga", "futhark.tga", + "latinExt_additional_variable.tga", "puae000-e0ff.tga" ) private val cyrilic_bg = "cyrilic_bulgarian_variable.tga" @@ -246,6 +252,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo 0x10D0..0x10FF, 0x250..0x2AF, 0x16A0..0x16FF, + 0x1E00..0x1EFF, 0xE000..0xE0FF ) private val glyphWidths: HashMap = HashMap() // if the value is negative, it's diacritics @@ -628,6 +635,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo return SHEET_IPA_VARW else if (isRunic(c)) return SHEET_RUNIC + else if (isLatinExtAdd(c)) + return SHEET_LATIN_EXT_ADD else return SHEET_UNKNOWN // fixed width @@ -697,6 +706,10 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo sheetX = runicIndexX(ch) sheetY = runicIndexY(ch) } + SHEET_LATIN_EXT_ADD -> { + sheetX = latinExtAddX(ch) + sheetY = latinExtAddY(ch) + } else -> { sheetX = ch.toInt() % 16 sheetY = ch.toInt() / 16 @@ -789,7 +802,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo internal val SHEET_KARTULI_VARW = 13 internal val SHEET_IPA_VARW = 14 internal val SHEET_RUNIC = 15 - internal val SHEET_CUSTOM_SYM = 16 + internal val SHEET_LATIN_EXT_ADD = 16 + internal val SHEET_CUSTOM_SYM = 17 internal val SHEET_UNKNOWN = 254 diff --git a/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt index a43ba03..6f05cf5 100644 --- a/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt +++ b/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt @@ -55,6 +55,7 @@ import net.torvald.terrarumsansbitmap.gdx.GameFontBase.Companion.SHEET_IPA_VARW import net.torvald.terrarumsansbitmap.gdx.GameFontBase.Companion.SHEET_CUSTOM_SYM import net.torvald.terrarumsansbitmap.gdx.GameFontBase.Companion.SHEET_UNKNOWN import net.torvald.terrarumsansbitmap.gdx.GameFontBase.Companion.SHEET_RUNIC +import net.torvald.terrarumsansbitmap.gdx.GameFontBase.Companion.SHEET_LATIN_EXT_ADD import org.newdawn.slick.Color import org.newdawn.slick.Font import org.newdawn.slick.Image @@ -68,7 +69,7 @@ import java.util.* import java.util.zip.GZIPInputStream /** - * LibGDX port of Terrarum Sans Bitmap implementation + * LibGDX->Slick2D back-port of Terrarum Sans Bitmap implementation * * Filename and Extension for the spritesheet is hard-coded, which are: * @@ -155,6 +156,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false) : Font { private fun isIPA(c: Char) = c.toInt() in codeRange[SHEET_IPA_VARW] private fun isColourCodeHigh(c: Char) = c.toInt() in 0b110110_1111000000..0b110110_1111111111 private fun isColourCodeLow(c: Char) = c.toInt() in 0b110111_0000000000..0b110111_1111111111 + private fun isLatinExtAdd(c: Char) = c.toInt() in 0x1E00..0x1EFF @@ -204,6 +206,9 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false) : Font { private fun ipaIndexX(c: Char) = (c.toInt() - 0x250) % 16 private fun ipaIndexY(c: Char) = (c.toInt() - 0x250) / 16 + private fun latinExtAddX(c: Char) = (c.toInt() - 0x1E00) % 16 + private fun latinExtAddY(c: Char) = (c.toInt() - 0x1E00) / 16 + private fun getColour(charHigh: Char, charLow: Char): Color { // input: 0x10ARGB, out: RGBA8888 val codePoint = Character.toCodePoint(charHigh, charLow) @@ -238,15 +243,16 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false) : Font { SHEET_THAI_VARW, SHEET_HAYEREN_VARW, SHEET_KARTULI_VARW, - SHEET_IPA_VARW + SHEET_IPA_VARW, + SHEET_LATIN_EXT_ADD ) private val fontParentDir = if (fontDir.endsWith('/') || fontDir.endsWith('\\')) fontDir else "$fontDir/" private val fileList = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!! "ascii_variable.tga", "hangul_johab.tga", - "LatinExtA_variable.tga", - "LatinExtB_variable.tga", + "latinExtA_variable.tga", + "latinExtB_variable.tga", "kana.tga", "cjkpunct.tga", "wenquanyi.tga.gz", @@ -259,6 +265,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false) : Font { "kartuli_variable.tga", "ipa_ext_variable.tga", "futhark.tga", + "latinExt_additional_variable.tga", "puae000-e0ff.tga" ) private val cyrilic_bg = "cyrilic_bulgarian_variable.tga" @@ -280,6 +287,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false) : Font { 0x10D0..0x10FF, 0x250..0x2AF, 0x16A0..0x16FF, + 0x1E00..0x1EFF, 0xE000..0xE0FF ) private val glyphWidths: HashMap = HashMap() // if the value is negative, it's diacritics @@ -634,6 +642,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false) : Font { return SHEET_IPA_VARW else if (isRunic(c)) return SHEET_RUNIC + else if (isLatinExtAdd(c)) + return SHEET_LATIN_EXT_ADD else return SHEET_UNKNOWN // fixed width @@ -703,6 +713,10 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false) : Font { sheetX = runicIndexX(ch) sheetY = runicIndexY(ch) } + SHEET_LATIN_EXT_ADD -> { + sheetX = latinExtAddX(ch) + sheetY = latinExtAddY(ch) + } else -> { sheetX = ch.toInt() % 16 sheetY = ch.toInt() / 16