(BG2) Kit stuff, always with the bugs (0813)
Continued from here.
So, it turns out I was wrong here when I said existing kit values worked (go figure I pick a kit at random and it is one that accidentally turns out to be correct).
Values assigned to kitted characters at character generation do not match the values listed in KIT.IDS. E.g., ASSASINs get 0xA at CC, but the value in KIT.IDS is 0x4000.
I guess the best fix for this would be to apply the patches from the Fixpack, to make KIT.IDS match the hardcoded values.
So, it turns out I was wrong here when I said existing kit values worked (go figure I pick a kit at random and it is one that accidentally turns out to be correct).
Values assigned to kitted characters at character generation do not match the values listed in KIT.IDS. E.g., ASSASINs get 0xA at CC, but the value in KIT.IDS is 0x4000.
I guess the best fix for this would be to apply the patches from the Fixpack, to make KIT.IDS match the hardcoded values.
// fixing kit.ids
COPY_EXISTING kit.ids override
REPLACE_TEXTUALLY ~.*\bTRUECLASS\b~ ~0x4000 TRUECLASS~
REPLACE_TEXTUALLY ~.*\bBERSERKER\b~ ~0x4001 BERSERKER~
REPLACE_TEXTUALLY ~.*\bWIZARDSLAYER\b~ ~0x4002 WIZARDSLAYER~
REPLACE_TEXTUALLY ~.*\bKENSAI\b~ ~0x4003 KENSAI~
REPLACE_TEXTUALLY ~.*\bCAVALIER\b~ ~0x4004 CAVALIER~
REPLACE_TEXTUALLY ~.*\bINQUISITOR\b~ ~0x4005 INQUISITOR~
REPLACE_TEXTUALLY ~.*\bUNDEADHUNTER\b~ ~0x4006 UNDEADHUNTER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_ABJURER\b~ ~0x0040 MAGESCHOOL_ABJURER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_CONJURER\b~ ~0x0080 MAGESCHOOL_CONJURER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_DIVINER\b~ ~0x0100 MAGESCHOOL_DIVINER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_ENCHANTER\b~ ~0x0200 MAGESCHOOL_ENCHANTER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_ILLUSIONIST\b~ ~0x0400 MAGESCHOOL_ILLUSIONIST~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_INVOKER\b~ ~0x0800 MAGESCHOOL_INVOKER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_NECROMANCER\b~ ~0x1000 MAGESCHOOL_NECROMANCER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_TRANSMUTER\b~ ~0x2000 MAGESCHOOL_TRANSMUTER~
REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_GENERALIST\b~ ~0x4000 MAGESCHOOL_GENERALIST~
REPLACE_TEXTUALLY ~.*\bFERALAN\b~ ~0x4007 FERALAN~
REPLACE_TEXTUALLY ~.*\bSTALKER\b~ ~0x4008 STALKER~
REPLACE_TEXTUALLY ~.*\bBEASTMASTER\b~ ~0x4009 BEASTMASTER~
REPLACE_TEXTUALLY ~.*\bASSASIN\b~ ~0x400A ASSASIN~
REPLACE_TEXTUALLY ~.*\bBOUNTYHUNTER\b~ ~0x400B BOUNTYHUNTER~
REPLACE_TEXTUALLY ~.*\bSWASHBUCKLER\b~ ~0x400C SWASHBUCKLER~
REPLACE_TEXTUALLY ~.*\bBLADE\b~ ~0x400D BLADE~
REPLACE_TEXTUALLY ~.*\bJESTER\b~ ~0x400E JESTER~
REPLACE_TEXTUALLY ~.*\bSKALD\b~ ~0x400F SKALD~
REPLACE_TEXTUALLY ~.*\bGODTALOS\b~ ~0x4013 GODTALOS~
REPLACE_TEXTUALLY ~.*\bGODHELM\b~ ~0x4014 GODHELM~
REPLACE_TEXTUALLY ~.*\bGODLATHANDER\b~ ~0x4015 GODLATHANDER~
REPLACE_TEXTUALLY ~.*\bTOTEMIC\b~ ~0x4010 TOTEMIC~
REPLACE_TEXTUALLY ~.*\bSHAPESHIFTER\b~ ~0x4011 SHAPESHIFTER~
REPLACE_TEXTUALLY ~.*\bBEASTFRIEND\b~ ~0x4012 BEASTFRIEND~
REPLACE_TEXTUALLY Blackguard BLACKGUARD //What?
Post edited by Bhryaen on
1
Comments
and the value for Wildmage? Or are we back to not being able to tell if the PC is a huge hulking smelly brute covered in fur or a spindly long hat and spectacles peering out from behind a book larger than his entire torso?
WILDMAGE and BARBARIAN both work with the existing values.
The values are written to and read from 0x244 in the CRE structure (apparently in big-endian too, to make it more interesting), if that is what you are asking.
With the only-half-the-dword-used bug fixed, the exact values apparently only matter insofar as what a kitted character has assigned to him/her during character creation. If you AddKit() with a different value than the hardcoded, Kit() will happily work with it. But since Kit() needs to work with values assigned during character creation, the values in KIT.IDS need to be changed to match the hardcoded ones. And yeah, in vanilla, only the mage kits are correct and working.
Potentially fixed - @Wisp's fix has been applied
Someone in your group KNEW this, because they correctly assigned 0x4020 (that is 0x4000 + 32) to blackguard. Well, it could have been some weidu magic command too.
Used NI to check if Wisp's changes were in the kit.ids file.