Pretty debug item creation screenFunny bug with outline shaderVisibility overlay that allowed me to find a bug in FOV calculationsChangelog for this week:
Implement a debug menu
Implement a debug summon NPC option (creates a selected NPC next to the player, with some caveats - e.g. if we're missing the tile for it, we don't spawn to avoid crashing the game)
Implement a debug create item option (creates an item on the player's tile)
Implement "egos" in Angband-speak (item magical properties) - for now only for armors, for test purposes
Spend the rest of the day making debug item menu look pretty
The debug create item allows you to add multiple "properties" (see above), provided they don't conflict (e.g. you can only add one "material" or one "bonus"). Yaay for my own code, no more problems with a leather armor +1 +3 or mithril adamantine leather armor lol (speaking of, I should disallow some materials based on whether it's a leather or metal item, too)
Write a function to spawn an item with a defined property (e.g. "spawn a leather armor +1 at x,y") outside of the debug menu
Shuffle the treasure table/list to a data file (no need for it to bloat the Treasure class)
Suddenly remember I forgot the outline shader (funny bug along the way) and the Cogmind-style labels above actors/items
Discover a bug in FOV calculations thanks to the labels code, write a debugging visibility overlay, five hours later discover I had a typo in the "does this tile let light pass" function >.<
Draw actors only on visible tiles, items on visible tiles or those that were once visible
Write a wrapper function for a ROTLove library function to muzzle printing the whole Dijkstra map to console every time it was recalculated
Comment out/remove or move to log many debugging prints (the game initializes noticeably faster)
Adjust the label locations to prevent them overlapping
I would have done more if I wasn't busy trying to understand the ECS. I think the components would be a godsend for complex stuff such as the actors. But I'm stuck on how to make ECS work alongside inheritance.
For now, still rolling along with an old T-Engine solution for classes based on an obsolete Lua "module" keyword. Haven't found a LOVE class library that would allow multiple inheritance (many of my classes rely on it). Ran into loops when "requiring" stuff a couple of times so started to look at components (see above)...