TODAY'S GOAL:
0. \ua3fd causes the character immediately after to vanish.
1. Why do Sliders only have to be kept around forever and can't go in containers like everything else?
2. Why are sliders not selected when I click on them? Is it a hover?
3. Why do fonts render blank? Also when I scroll they slowly disappear until there's a column.
* \u2738 is missing on the row when in grid but works when clicked.
* A designer tool to help find characters for foreground, background, and figure out their colors.
* renderer's mouse coordinates are totally wrong. Need to put glyph bounds into the panel and then you can ask if a mouse click is on a panel, and what the _panel's_ coordinates are.
* Use a vector of strings with 1 char each again.
TODO:
* Make a unicode helper.
* Fix " room should always be found"
* Fix BUG markers as much as possible.
* Make room generation have "texture" or state like mossy, flooded, etc.
* A condition map that indicates what each tile's condition is, so it can have "watery", "wet", "mossy", "burned", and that changes the color of the foreground/background but not the actual tile.
* A tile will then denote a kind of surface, so stone, water, lava, etc.
* Lua integration
* Enemies stuck in walls after generation.
* Save file needs work, it's not saving gold and lights.
* Move all keyboard and mouse events into SFMLRender so it's completely abstracted away and can be changed to a different backend if I want.
* When fighting two enemies with lots of attacks it crashes because one dies and isn't there. Test by making enemies immortal.
* LightRender can just use the Dijkstra map paths to calculate light strenght from the point rather than doing the box thing.
* $paths.$paths is annoying.
* Format of pre/post in dbc isn't consistent with the rest of the lib but I also maybe don't need the function version?
* I can do headless windows in renderer for testing.
- renderer.$window.setVisible(false);
* Think up an enemy system.
* Write a method for renderer that can translate coordinates.
* Can std::any be defaulted to a noop in the events?
* Inventory needs to be better, but need some kinds of "weapons" or other loot to get and not just gold.
* Create a few more enemy types to fight.
* Devise a more complete map/world generator that can use the loot and enemies better.
* Maybe an LOS system, but the hearing version works pretty well so far.
* Probably a system for mapping collision types to sound effects, rather than having the GUI do it.
* Write a test that generates a ton of maps then confirms there's a path from one room to every other room?
* check out SoLoud.
* BUG: When enemies die they can be overlapping another enemy.