You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
3.1 KiB
64 lines
3.1 KiB
TODAY'S GOAL:
|
|
|
|
* Room should always be found.
|
|
|
|
* Change the test matrix to be irregular dimensions.
|
|
* Study https://github.com/hirdrac/gx_lib/blob/main/gx/Unicode.hh
|
|
* Study this https://en.cppreference.com/w/cpp/language/explicit
|
|
* Study https://en.cppreference.com/w/cpp/language/member_functions#Special_member_functions
|
|
|
|
* 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:
|
|
|
|
* Make the light directional.
|
|
|
|
* 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.
|
|
|