DFHack / dfhack

Memory hacking library for Dwarf Fortress and a set of tools that use it
Other
1.87k stars 475 forks source link

Tweak "craft-age-wear" broken on Windows #4292

Open quietust opened 8 months ago

quietust commented 8 months ago

The "craft-age-wear" tweak relies on the ability to interpose a vmethod in a base class and automatically update all subclasses which inherit from it. This requires the base class to have an existing vtable inside the binary, and while this was true in version 0.47.05 (and earlier) for Windows, it is no longer the case.

Either the tweak will need to be updated to individually interpose all of the various subclasses of item_craftedst (of which there are as many as 64), or VMethodInterpose will need to somehow be updated to handle missing base classes, perhaps by providing it with hints (e.g. that a specific subclass does not override the vmethod and can be used as a basis for identifying other subclasses which don't override it either, or perhaps examining all subclasses and picking whichever vmethod pointer appears most frequently).

glolsh commented 3 months ago

Second to this, can't enable craft-wear-age

tweak craft-age-wear

Could not activate tweak craft-age-wear (craft_age_wear_hook::ageItem)