Walking in the world, with fog of war enabled

More porting this week! As usual. But there's a bit of a huge difference since last time. Because, this time, the game actually works, properlyish (TM). I'll keep this succinct, with work done and progress of the port:

  • After implementing a few additional render passes, such as path visualisation with arrows, tile highlighting and entity overlays, I thought it's a good idea to start working to make the game run and show something.
  • The first hurdle was the sprite composition code: the player starts with face configuration and variable equipment, and all this causes on-the-fly sprite generation, so that code needed a few fixups to get working again (coordinate system change, mipmap calculations, bugfixes etc)
  • Added a placeholder "character generation" game state, so that in reality it might be a bunch of screens to configure the character, but for now it's a JSON preset
  • When we start a new game, we use the "active world" preset and the "active character" preset, both of which have been generated or selected from previous gamestates (world generation and character generation)
  • Added support for different sprite sizes embedded in sprite data, so that some decals could cover a large game area, e.g. a 8x8 grid (no example yet though)
  • Some bugfixing on mines and towns having wrong positions.
  • Hovered tile is now highlighted
  • Ported fog of war shader

What's next?

  • Better port of input/actions. I had this horrible Unity UI previously, which I'm planning to temporarily port to a horrible-looking ImGui "UI", but I want to replicate what was there with as little effort as possible before I ditch it altogethere. The reason is that the horrible UI is a way to validate that things like multi-targetting or multi-stage actions are still working.
  • Make save/load work again (it's probably broken I guess)
  • Dare to try and enter a level, where all hell will break loose, and rendering will crumble.
  • Refactor, refactor. Plenty of that to do still.