TODAY'S GOAL: * Light should flood using the dijkstra map rather than use a box. -1. Learn std::initializer_list by using it. 0. \ua3fd causes the character immediately after to vanish. Make a test and solve it. 1. Why do Sliders only have to be kept around forever and can't go in containers like everything else? * Make a for-loop generator thing, and figure out whatever this magic matrix-processing-without-for-loops tech is (that probably doesn't exist). "you could make an iterator type that you create with the Matrix & a box - then it iterates though each row/column and updates its x/y values. More code over all but loops like you're doing now could be simpler" TODO: * Hot key for debug view. * Refine the event handling to pass most of them to the gui panels and then I can intercept them. * Resolve fmt::format vs std::format from hirdrac when using clang or gcc latest. * 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.