Secondly I noticed that the code for changing scroll usability uses WRITE_LONG to write the whole 4 bytes for class restrictions (starting at 0x1e) with an explicitly defined value. Could this be updated to use WRITE_BYTE instead? I think the changes would be this:
WRITE_LONG 0x1e 0x60305c80
to this:
READ_BYTE ~0x1f~ ~byte1~ WRITE_BYTE ~0x1f~ (~%byte1%~ BAND ~0b11111101~) READ_BYTE ~0x20~ ~byte2~ WRITE_BYTE ~0x20~ (~%byte2%~ BAND ~0b10111101~)
This would make it so refinements doesn't overwrite class restrictions assigned by mods installed before it. I don't think it will really matter in my case since my mod will have to be installed after refinements anyway in order to patch up any incompatibility with use scrolls and clerics (and particularly Cleric-->Thief dual class). Note that the above code assumed you wanted to remove the Thief, Cleric/Thief, and Fighter/Thief flags, which I think are the three you need to set.
EDIT: Looking over the newest version of Refinements, I can see that it does some great stuff to generalize the use scroll code and make it compatible with pretty much everything. Could I use and modify this code for my mod? I would put a check in for Refinements and if it's present I actually won't have to do very much to make my mod play nice (basically refinements would already do everything I need except maybe the true class cleric), while if refinements isn't present I could install the pertinent parts of the code (basically the parts that address clerics dualing to mage). BTW the above code change request actually still applies in the latest version of Refinements.
Thanks,
-Starcrunch (or Acheron here at SHS)
Edited by Acheron, 02 June 2008 - 09:27 AM.