Skip to content

(BG2) Kit stuff, always with the bugs (0813)

WispWisp Member Posts: 1,102
edited August 2012 in Fixed
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.

// 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

Comments

  • cmorgancmorgan Member Posts: 707
    OK - cool - that's two gurus who think this should fix it, @Wisp and @Avenger_teambg -

    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? :)
  • WispWisp Member Posts: 1,102
    @cmorgan
    WILDMAGE and BARBARIAN both work with the existing values.
  • cmorgancmorgan Member Posts: 707
    Sweet. That has been a personal pPITA for me, as i like to set up personalized strings.
  • SethDavisSethDavis Member Posts: 1,812
    edited August 2012
    What should these correspond to? Some of them (mageschools only) match the defines in the code used to identify the kits, but the rest don't match up very well
        TRUECLASS                    0x00004000 
    BERSERKER 0x00000001 //Fighter
    WIZARDSLAYER 0x00000002
    KENSAI 0x00000004
    CAVALIER 0x00000008 //Paladin
    INQUISITOR 0x00000010
    UNDEADHUNTER 0x00000020
    MAGESCHOOL_ABJURER 0x00000040 //MAGE
    MAGESCHOOL_CONJURER 0x00000080
    MAGESCHOOL_DIVINER 0x00000100
    MAGESCHOOL_ENCHANTER 0x00000200
    MAGESCHOOL_ILLUSIONIST 0x00000400
    MAGESCHOOL_INVOKER 0x00000800
    MAGESCHOOL_NECROMANCER 0x00001000
    MAGESCHOOL_TRANSMUTER 0x00002000
    MAGESCHOOL_GENERALIST 0x00004000
    FERALAN 0x00008000 //Ranger
    STALKER 0x00010000
    BEASTMASTER 0x00020000
    ASSASIN 0x00040000 //Thief
    BOUNTYHUNTER 0x00080000
    SWASHBUCKLER 0x00100000
    BLADE 0x00200000 //BARD
    JESTER 0x00400000
    SKALD 0x00800000
    GODTALOS 0x01000000 //Cleric
    GODHELM 0x02000000
    GODLATHANDER 0x04000000
    TOTEMIC 0x08000000 //DRUID
    SHAPESHIFTER 0x10000000
    BEASTFRIEND 0x20000000
    BARBARIAN 0x40000000
    WILDMAGE 0x80000000
    And poor blackguard left out alone in the rain
  • cmorgancmorgan Member Posts: 707
    Sorry - are you asking which kit matches up with which class? Or what value the kit should match?
  • WispWisp Member Posts: 1,102
    edited August 2012
    @SethDavis
    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.
  • SethDavisSethDavis Member Posts: 1,812
    edited August 2012
    Ok, I'll toss in @Wisp's fix then

    Potentially fixed - @Wisp's fix has been applied
  • WispWisp Member Posts: 1,102
    edited August 2012
    Confirmed fixed. KIT.IDS have all the right values and kit checks work for Priests of Talos, Wild Mages, Assassins and Kensais. Edit: add GENERALIST/TRUECLASS, Diviner and Skald to the list.
  • Avenger_teambgAvenger_teambg Member, Developer Posts: 5,862
    edited August 2012
    @SethDavis there are more kits than kit usability bits. So, only part of these (the ancient mageschool parts) could be used directly. The rest is 0x4000 + kitlist.2da row number.
    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.
  • TanthalasTanthalas Member Posts: 6,738
    Confirmed Fixed in Build 0815

    Used NI to check if Wisp's changes were in the kit.ids file.
Sign In or Register to comment.