OpenNoteBlockStudio icon indicating copy to clipboard operation
OpenNoteBlockStudio copied to clipboard

Feature Request: Unicode Character Support

Open KabanFriends opened this issue 5 years ago • 3 comments

I'm not sure GMS/GMS2 supports unicode character but it's nicer to have unicode chars in NBS song name/interface (especially the file names because some languages like Chinese, Japanese or other have a lot of unicode characters which can't be displayed in Note Block Studio)

also it should support unicode characters/default windows right click popup in song name/description field and other input box.

I'm sure GameMaker 8.0 doesn't support unicode characters but I don't know about unicode characters in new GameMaker Studio and Studio 2. So please make this if possible

KabanFriends avatar Jul 11 '19 15:07 KabanFriends

The way Note Block Studio handles text is custom coded (see https://github.com/HielkeMinecraft/OpenNoteBlockStudio/blob/master/scripts/draw_text_edit/draw_text_edit.gml) . Game Maker 8 didn't have proper text editing functions, so if I were to add unicode support, I would need to reimplement all of the text tools (which it does need, when the program is lagging, text inputs are hard to register) or modify the existing code to support unicode somehow.

ShinkoNet avatar Jul 14 '19 02:07 ShinkoNet

It's not about GameMaker Studio, it's about the font that's being used.

The fonts used in ONBS are Open Sans, Tahoma and Arial. They all do not support Chinese or Japanese characters. So the only solution is to change fonts.

I recently switched to those fonts to allow Cyrillic characters, and updating ONBS afterwards was hell. Because the fonts were a bit more spaced apart, nothing seemed to fit anymore.

I like the fonts we have right now, so I see no direct reason to change.

HielkeMinecraft avatar Aug 07 '19 21:08 HielkeMinecraft

Note that this is not only about fonts. Currently only characters whose code point is <= 255 can be saved due to: https://github.com/HielkeMinecraft/OpenNoteBlockStudio/blob/4625011fb889c9d5e1386fadec931a8d6ee57353/scripts/buffer_write_string_int/buffer_write_string_int.gml#L10

This can be seen when using for example Ő (U+0150), which becomes P (U+0050) when being saved.

Marcono1234 avatar Oct 20 '19 17:10 Marcono1234