Barak's conversion script

From PCGen Wiki
Jump to: navigation, search

Barak's 5.12 -> 5.14 Conversion Script


Barak's conversion script automates much of the process of upgrading data files from 5.12 to 5.14. However, there are some things that cannot be converted. The script creates a log file and will note any of these items (and the file and line # within that file) in that log, as well as the recommended action to deal with them.

Below are the docs for the script.

FUNCTION: Update PCGen data files (.lst) from version 5.12 to 5.14

INSTALLATION:

  A) Get Perl if you don't already have it... any standard distribution with version 5.8 and over should work.  
  B) Once Perl is installed on your computer, put the script in the directory of your choice. 
  C) To run the script all you have to do is type "perl convert_514.pl" with the proper parameters to make it work.

COMMAND LINE PARAMETERS:

  -S --> Create generic shieldprof file (Optional)
  -I="<directory>" --> input directory (Required)
  -O="<directory>" --> output directory (Required)
      directory names must be in double quotes if they contains spaces

NOTES:

1) If you specify the same output directory as input directory your files will be overwritten, so make sure to backup your files in another location if you choose to do this. NOTE: This is *NOT* the recommended method

2) The script will remove CHOICE tags that do not have targets that are schools, subschools or descriptors. It will log these occurrences.

3) Any CHOOSE tag with only one choice (like the old "CHOOSE:+3 HP" for the Toughness feat) will be converted to CHOOSE:NOCHOICE

4) Any CHOOSE tag that does not have a first parameter that matches one of the documented ones will be converted to CHOOSE:STRING (in a non-equipmod file) or CHOOSE:STRING|...|TITLE=yyy in an equipmod file (the title will be the text between the colon and the first pipe)

5) Any tags that need to be manually updated will be passed through as is and noted in the log file (line numbers given reference *input files*)

6) Recommended usage is in two steps:

  A) Point the script at your existing gamemode directory and direct output to the 5.14 gamemode directory
  B) Point the script at your existing data directory and direct output to the 5.14 data directory


TAG CONVERSIONS/ADDITIONS:

SA -> SAB (Logs those that need manual conversion - basically SA:.CLEAR)

PROFICIENCY -> PROFICIENCY:<subtoken>|<prof>

AUTO:ARMORPROF|TYPE -> AUTO:ARMORPROF|ARMORTYPE=

AUTO:SHIELDPROF|TYPE -> AUTO:SHIELDPROF|SHIELDTYPE=

FEATAUTO -> AUTO:FEAT

REPEATLEVEL -> <level #>:REPEATLEVEL

PREDEITY -> PREDEITY:x,y,y

PRETEMPLATE -> PRETEMPLATE:x,y,y

PRERACE:y -> PRERACE:x,y,y

PRELEVEL: -> PRELEVEL:MIN=#

PRELEVELMAX -> PRELEVEL:MAX=#

CONTAINS:-1 -> CONTAINS:UNLIM

MOVECLONE:w,x,y,z -> MOVECLONE:x,y,z (Logs those that need manual conversion)

PRETYPE: -> PRETYPE:x,y,y

ADD:SA -> ADD:SAB

KNOWNSPELLS:.CLEAR<stuff> -> KNOWNSPELLS:.CLEAR|<stuff>

PREHD:#-# -> PREHD:MIN=x,MAX=y

CHOICE -> CHOICE:SCHOOL

CHOICE -> CHOICE:SUBSCHOOL

CHOICE -> CHOICE:DESCRIPTOR

FAVCLASS -> FAVCLASS:<class>.<subclass>

FAVOREDCLASS -> FAVOREDCLASS:<class>.<subclass>

Create Armorprof file from armor.lst files

PRECLASS -> PRECLASS:#,y,y conversion

PREMOVE -> PREMOVE:#,y,y conversion

PREWIELD -> PREWIELD:#,y,y conversion

PREWEAPONPROF -> PREWEAPONPROF:#,y,y conversion

PRESPELLSCHOOL:Abjuration,1,5 -> PRESPELLSCHOOL:1,Abjuration=5

PRESPELLSCHOOLSUB:Healing,1,5 -> PRESPELLSCHOOLSUB:1,Healing=5

PRESPELLDESCRIPTOR:Evil,1,5 -> PRESPELLDESCRIPTOR:1,Evil=5

CHOOSE:Language(<type>) -> CHOOSE:LANGUAGE|<type>

CHOOSE:SKILLSNAMED|...|# -> CHOOSE:SKILLSNAMED|...<tab> SELECT:#

SPELLS:<spellbook>|TIMES:-1 to SPELLS:<spellbook>|TIMES:ATWILL

NUMCHOICES=1 not allowed in CHOOSE:SPELLLEVEL

CHOOSE: in EqMod with Title as first argument is deprecated -> CHOOSE:<subtoken>|<args>|TITLE=<title>

REMOVE:FEAT(<feat1>,<feat2>)# -> REMOVE:FEAT|<feat1>,<feat2>|#

CHOOSE:<blah text1>|<blah text2> -> CHOOSE:STRING|<blah text1>|<blah text2>

CHOOSE:CCSKILLLIST|x,x -> CHOOSE:SKILLSNAMED|CROSSCLASS

CHOOSE:NONCLASSSKILLLIST|x -> CHOOSE:SKILLSNAMED|CROSSCLASS|EXCLUSIVE

CHOOSE:SKILLIST|x,x -> CHOOSE:SKILLSNAMED|x|x

CHOOSE:SKILLIST|LIST -> CHOOSE:SKILLSNAMED|ALL

CHOOSE:Martial -> CHOOSE:PROFICIENCY|WEAPON|UNIQUE|TYPE.Martial

CHOOSE:Exotic -> CHOOSE:PROFICIENCY|WEAPON|UNIQUE|TYPE.Exotic

CHOOSE:SPELLLEVEL arguments may not contain ,

LIST in some CHOOSEs no longer used

ADD:FEAT(blah,blah1)# -> ADD:FEAT|#|blah,blah1

ADD:CLASSSKILLS(blah,blah1)# -> ADD:CLASSSKILLS|#|blah,blah

ADD:SPELLCASTER(blah,blah1)# -> ADD:SPELLCASTER|#|blah,blah

PRESPELLTYPE:Arcane,1,5 -> PRESPELLTYPE:1,Arcane=5

RESIZABLEEQUIPTYPE -> Add default to miscinfo.lst

WEAPONREACH -> Add default to miscinfo.lst

FOLLOWERALIGN -> PREALIGN

PREVIEWDIR:d20/fantasy -> added to miscinfo.lst as a commented out example

PREVIEWSHEET:preview.html -> added to miscinfo.lst as a commented out example

VISION:Low-light,Darkvision -> VISION:Low-light|Darkvision

CLASSES:Sorcerer=1[PRExxx] -> CLASSES:Sorcerer=1<tab>PRExxx

PRESA:Wild Empathy -> PRESAB:Wild Empathy

WT:- -> <tab>

ADD:Language -> ADD:LANGUAGE

BONUSFEATS:1 -> BONUS:FEAT|POOL|1

PREEQUIP:<equipment> -> PREEQUIP:#,<equipment>