mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-29 17:38:16 +03:00
Add support for Unicode rendering (#47)
This uses utfcpp combined with a custom font, in the form of a PNG and text file. By default, the game acts exactly as it did before; custom fonts can be provided by third parties.
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
#include "FileSystemUtils.h"
|
||||
|
||||
#include <string>
|
||||
#include <utf8/unchecked.h>
|
||||
|
||||
edlevelclass::edlevelclass()
|
||||
{
|
||||
@@ -2625,7 +2626,8 @@ void editorrender( KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map, ent
|
||||
}
|
||||
else
|
||||
{
|
||||
fillboxabs(dwgfx, (edentity[i].x*8)- (ed.levx*40*8),(edentity[i].y*8)- (ed.levy*30*8),edentity[i].scriptname.length()*8,8,dwgfx.getRGB(96,96,96));
|
||||
int length = utf8::unchecked::distance(edentity[i].scriptname.begin(), edentity[i].scriptname.end());
|
||||
fillboxabs(dwgfx, (edentity[i].x*8)- (ed.levx*40*8),(edentity[i].y*8)- (ed.levy*30*8),length*8,8,dwgfx.getRGB(96,96,96));
|
||||
}
|
||||
dwgfx.bprint((edentity[i].x*8)- (ed.levx*40*8),(edentity[i].y*8)- (ed.levy*30*8), edentity[i].scriptname, 196, 196, 255 - help.glow);
|
||||
break;
|
||||
@@ -3796,7 +3798,7 @@ void editorinput( KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map, enti
|
||||
ed.sby--;
|
||||
}
|
||||
key.keybuffer=ed.sb[ed.pagey+ed.sby];
|
||||
ed.sbx = ed.sb[ed.pagey+ed.sby].length();
|
||||
ed.sbx = utf8::unchecked::distance(ed.sb[ed.pagey+ed.sby].begin(), ed.sb[ed.pagey+ed.sby].end());
|
||||
}
|
||||
|
||||
if (key.isDown(27))
|
||||
@@ -3881,7 +3883,7 @@ void editorinput( KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map, enti
|
||||
}
|
||||
|
||||
ed.sb[ed.pagey+ed.sby]=key.keybuffer;
|
||||
ed.sbx = ed.sb[ed.pagey+ed.sby].length();
|
||||
ed.sbx = utf8::unchecked::distance(ed.sb[ed.pagey+ed.sby].begin(), ed.sb[ed.pagey+ed.sby].end());
|
||||
|
||||
if(!game.press_map && !key.isDown(27)) game.mapheld=false;
|
||||
if (!game.mapheld)
|
||||
@@ -3900,7 +3902,7 @@ void editorinput( KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map, enti
|
||||
}
|
||||
if(ed.sby+ed.pagey>=ed.sblength) ed.sblength=ed.sby+ed.pagey;
|
||||
key.keybuffer=ed.sb[ed.pagey+ed.sby];
|
||||
ed.sbx = ed.sb[ed.pagey+ed.sby].length();
|
||||
ed.sbx = utf8::unchecked::distance(ed.sb[ed.pagey+ed.sby].begin(), ed.sb[ed.pagey+ed.sby].end());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user