Author Topic: 2dilate - a new (and slightly different) 2da file merger.  (Read 1194 times)

Legacy_leo_x

  • Sr. Member
  • ****
  • Posts: 403
  • Karma: +0/-0
2dilate - a new (and slightly different) 2da file merger.
« on: September 12, 2014, 10:26:40 am »


               

I decided to release the 2da merger I've been using to get my PW up to custom content snuff.  Details and download are here: http://neverwinterva...er/tool/2dilate


 


It introduces a new filetype: 2dx.  The file specification is on the link above.  The main goal of this merger: 



  • A merger that did not require using directories to separate multiple merge files.

  • A file format that is simple, compact, and familiar.  Something that could ideally be distributed with custom content to ease merging or shared by community members.  And also trivially implementable in any programming language/environment.

  • A simple straight forward interface, that does not require a PhD to learn.


 


I didn't thoroughly investigate all other 2da mergers, the few that I did I felt were overly complex and didn't suit my desire to keep all merges as discrete as possible so that I could keep track of 1) proper credits for everyone, 2) where a merge came from, and 3) easily add them to version control.


 


Samples are in the 7z distribution.  To get a better idea of what can be done with 2dilate, it's worth looking at all those.


 


Big thanks to Shadooow for his feedback!  With it, I think this tool has gone from being a nice little thing, to on the road to being rather state of the art.


 


v0.2:


  • Added --non-default switch.  When passed to 2dilate, the program will merge a row entry if and only if that entry is a default value.  (The distro contains all 1.69 2DAs, this is not something users need to supply)

  • Changed the TLK: specification line to use column names rather than numbers.

  • Added DESCRIPTION: specification line for the purposes of prompting a person merging things, similar to WEIDU, I think.

  • 2dx files no longer need to have all parent 2da columns, only those being changed.

  • A new 2dx row entry: ####, this tells 2dilate to ignore merging this entry.  This I think might simplify scenarios where someone might want to merge a few columns, but only certain entries on certain rows, without the burden of having to wonder: has this row entry been modified or not?

  • 2dx files can be used to add new 2da columns.  They will be appended to the end, per the suggestion in the Bioware 2da spec.

All other details are on the neverwintervault.org project page.



               
               

               


                     Modifié par leo_x, 14 septembre 2014 - 07:10 .
                     
                  


            

Legacy_leo_x

  • Sr. Member
  • ****
  • Posts: 403
  • Karma: +0/-0
2dilate - a new (and slightly different) 2da file merger.
« Reply #1 on: September 14, 2014, 08:09:34 am »


               

I've updated this to v0.2 already, thanks to feedback from Shadooow, for anyone interested,  New features are listed above and on the neverwintervault.org project page.  This version is improved 1000% and is vastly more powerful, but still convenient and easy to use.



               
               

               
            

Legacy_Tarot Redhand

  • Hero Member
  • *****
  • Posts: 4165
  • Karma: +0/-0
2dilate - a new (and slightly different) 2da file merger.
« Reply #2 on: September 28, 2014, 11:38:39 pm »


               

Sounds interesting but can I make a couple of suggestions?


 


Added --non-default switch. When passed to 2dilate, the program will merge a row entry if and only if that entry is a default value. (The distro contains all 1.69 2DAs, this is not something users need to supply)

 


Could this idea be extended to say the CEP and/or Project Q?


 


Also how about a visual (as opposed to command line) version. I can never remember all the optional parameters and batch files can be a pain to remember the syntax for.


 


TR



               
               

               
            

Legacy_leo_x

  • Sr. Member
  • ****
  • Posts: 403
  • Karma: +0/-0
2dilate - a new (and slightly different) 2da file merger.
« Reply #3 on: September 29, 2014, 08:27:09 am »


               


Sounds interesting but can I make a couple of suggestions?


 


 


Could this idea be extended to say the CEP and/or Project Q?


 


Also how about a visual (as opposed to command line) version. I can never remember all the optional parameters and batch files can be a pain to remember the syntax for.


 


TR




 


Absolutely!


 


CEP and/or Project Q could be added.  How it currently works is there is zip, 2dasource.zip, that comes with the program that contains all the 1.69 2das.  When merging it just reads the copy of the 2da out of that zip file and considers that as the default.  So it would be easy to add zips for those projects, do a more NWN Resource Manager style (where haks/zips can be added with precedence), and/or a user can completely control what the default is just by replacing files in the zip.


 


I have worked a bit on a GUI.  I had some ideas that I wanted to explorer along with importing 2dxs tho.  I've not spent a lot of time on it, since I'm not sure how valuable they will be, but the main features besides importing 2dxs are switching between grid and row view, schemas to ensure correct 2da row entry types and allowing more options for displaying things, e,g being able to see actual TLK entries or cross reference other 2das in row view.


 


Couple screenshots here: Grid View: http://imgur.com/lVHbQ5U,FU8AHqb#0 Row View: http://imgur.com/lVHbQ5U,FU8AHqb#1



               
               

               
            

Legacy_leo_x

  • Sr. Member
  • ****
  • Posts: 403
  • Karma: +0/-0
2dilate - a new (and slightly different) 2da file merger.
« Reply #4 on: January 10, 2015, 10:59:08 pm »


               

Updated utils over here now: http://neverwinterva...exe-replacement


 


I still wish for common formats and the death of the top hak, but the above link is something that may be useful to others regardless.