mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-30 01:48:15 +03:00
Add PR_RTL_XFLIP print flag
This lets you mirror the X axis specifically in RTL languages, so the left border is 320 and the right border is 0, and invert the meaning of PR_LEFT (0) and PR_RIGHT. Most of the time this is not necessary, it's just for stuff where a label is followed by a different print, like "Font: " followed by the font name, time trial time displays, etc
This commit is contained in:
committed by
Misa Elizabeth Kai
parent
3588168c4d
commit
eac612c309
@@ -86,6 +86,7 @@ struct PrintFlags
|
||||
bool cjk_low;
|
||||
bool cjk_high;
|
||||
bool rtl;
|
||||
bool rtl_xflip;
|
||||
};
|
||||
|
||||
static FontContainer fonts_main = {};
|
||||
@@ -830,6 +831,7 @@ static PrintFlags decode_print_flags(uint32_t flags)
|
||||
pf.align_right = flags & PR_RIGHT;
|
||||
pf.cjk_low = flags & PR_CJK_LOW;
|
||||
pf.cjk_high = flags & PR_CJK_HIGH;
|
||||
pf.rtl_xflip = flags & PR_RTL_XFLIP;
|
||||
|
||||
if (pf.full_border)
|
||||
{
|
||||
@@ -1269,6 +1271,12 @@ void print(
|
||||
return;
|
||||
}
|
||||
|
||||
if (pf.rtl && pf.rtl_xflip && (!pf.align_cen || x != -1))
|
||||
{
|
||||
x = SCREEN_WIDTH_PIXELS - x;
|
||||
pf.align_right = !pf.align_right;
|
||||
}
|
||||
|
||||
if (pf.align_cen || pf.align_right)
|
||||
{
|
||||
const int textlen = len(flags, text);
|
||||
@@ -1294,7 +1302,7 @@ void print(
|
||||
for (int offset = 0; offset < 4; offset++)
|
||||
{
|
||||
print(
|
||||
flags & ~PR_BOR & ~PR_CEN & ~PR_RIGHT,
|
||||
flags & ~PR_BOR & ~PR_CEN & ~PR_RIGHT & ~PR_RTL_XFLIP,
|
||||
x + offsets[offset][0]*pf.scale,
|
||||
y + offsets[offset][1]*pf.scale,
|
||||
text,
|
||||
@@ -1310,7 +1318,7 @@ void print(
|
||||
for (int offset = 0; offset < 8; offset++)
|
||||
{
|
||||
print(
|
||||
flags & ~PR_FULLBOR & ~PR_CEN & ~PR_RIGHT,
|
||||
flags & ~PR_FULLBOR & ~PR_CEN & ~PR_RIGHT & ~PR_RTL_XFLIP,
|
||||
x + offsets[offset][0] * pf.scale,
|
||||
y + offsets[offset][1] * pf.scale,
|
||||
text,
|
||||
|
||||
Reference in New Issue
Block a user