nHashType is tricky to use an an integer and require a fair amount of bitwize manipulation. In addition, modifying it require to update a lot of code across the codebase, and doing so incorrectly will not yield any error.
It would be preferable to have a class that wrap the integer and encapsulate the bit manipulations. This way updating the class would ensure all callsite update appropriately.