Hey mifki,
Two things:
First, thanks so much for adding redraw_all. Not sure when you added it but I only noticed it recently, and it has enabled me to use the latest Spacefox additions from LeoCaen, without 'bleeding' tiles all over the place. And I can't notice any significant slowdown at all. Very nice!
Secondly, what are your plans regarding TWBT update for v42? DFHack has now reached pre-release version v42.02-r0, and is fairly functional against DF v42.02.
Tonight I have updated TWBT patches.hpp for OSX and done a first compile of OSX TWBT for v42.02 and it seems to be working pretty well:
Currently it only supports fortress mode, due to some compilation errors relating to missing struct members in DFHack's viewscreens for adventure mode. I am guessing this is because DFHack's adventure mode support is not yet complete for v42 in the pre-release builds:
In file included from twbt.cpp:380:0:
tileupdate_text.hpp: In function 'bool is_text_tile(int, int, bool&)':
tileupdate_text.hpp:71:16: error: 'struct df::viewscreen_setupadventurest' has no member named 'subscreen'
if (s->subscreen != df::viewscreen_setupadventurest::Nemesis)
^
tileupdate_text.hpp:71:29: error: 'Nemesis' is not a member of 'df::viewscreen_setupadventurest'
if (s->subscreen != df::viewscreen_setupadventurest::Nemesis)
^
In file included from twbt.cpp:386:0:
legacy/renderer_legacy.hpp: In function 'bool is_text_tile_legacy(int, int, bool&)':
legacy/renderer_legacy.hpp:89:16: error: 'struct df::viewscreen_setupadventurest' has no member named 'subscreen'
if (s->subscreen != df::viewscreen_setupadventurest::Nemesis)
^
legacy/renderer_legacy.hpp:89:29: error: 'Nemesis' is not a member of 'df::viewscreen_setupadventurest'
if (s->subscreen != df::viewscreen_setupadventurest::Nemesis)
In order to get a working build, I simply edited legacy/renderer_legacy.hpp and tileupdate_text.hpp and removed the conditional block
if (IS_SCREEN(viewscreen_setupadventurest)). So this will totally break Adventure Mode I am sure, but it allows it to compile and it seems to work well in Fortress.
I am guessing this is an issue in the latest DFHack, missing some Adventure mode viewscreen methods that used to be there? Or perhaps they have been renamed, I have not yet checked.
Anyway, apart from that the resulting build appears to work well in fortress. I haven't yet tested the TWBT versions of automaterial, mousequery, etc, but don't anticipate any problems with those.
Tomorrow we're expecting/hoping v42.03 to come out so my plan was to wait until that comes out and then update patches.hpp again for 42.03, and then send you a pull request to your Github. I figure there's no point supporting v42.02 if .03 is very soon out, and Toady has indicated that it may well come tomorrow. (I don't know how long it will take DFHack to update to -03, but I figure it should probably be quick, and anyway is probably not a dependency on finishing the TWBT patches.hpp changes.)
Also I plan to do the Patches updates also for Linux, and hopefully Windows too. So I will try and submit them all to you at the same time. I also thought I might submit to you a quick little build script to make compilation a bit easier (I had to make a few edits to the Makefile which could be handled easier in a build script, like I am also working on for DFhack itself.)
Do you think you would then do a pre-release TWBT binary release? Or do you want to wait until DFHack is on a stable release and the Adventure mode issue is fixed?
Let me know your thoughts.
PS. Thanks so much for the documentation in Patches.md. Once I started to understand a bit about Hopper, it was very straightforward to follow your excellent instructions. I could not have done anything without that.