CleverRaven/Cataclysm-DDA — pull request #8078 by BevapDin (2014-06-29 00:30:56+00:00)
Title: Make the monster symbol a UTF-8 encoded string. [WIP]

It seems fully functionally in ncurses. Similar for SDL, aside from some limitations (see TODO). There is no example include, for testing one can change any monster symbol in `data/json/monsters.json`.

Extend this to other stuff that has symbols (like terrain/furniture/items/vehicle parts/fields/traps)?

The ASCII-fallback in tiles mode is restricted to work with 8-bit ASCII only. If the monster symbol is code point 300, the ASCII fallback won't work as there is no way to define a fallback tile for this number.

It probably does not work well with a bitmap font (loaded from a bitmap/png file, not a normal font file) as those files usually only contains 16*16 entries.

TODO:
- There is no check that the json data contains a string of appropriate display width. Strings with a display width of 2 or more should probably be forbidden.
- It does not work in SDL when the string contains several code points (e.g. combination characters) because SDL only prints one code point in each cell and prints the next code point in the next cell, this affects all SDL text rendering.
- Some code relies on `sym=='Z'` to detect monsters of the zombie type (e.g blood analyzer computer, `iuse::pheromone`). They should probably use the monster species instead.