FFXI Dat File Manager - Extract and Re-Package
To Do List:
- Create a separate file for Encryption/Decoding
- Move Integer rotate() method - DONE
- Rename to ror, create a rol - DONE
- Need to create something to translate special characters (auto-trans brackets, element icons, probably more...)
- Possible additions to BinData
- ??? (May need some changes/additions to string? see #7)
- Complete Graphics portion for armor prototype - DONE
- Need to finish researching DAT format to extract the graphic portion of items - DONE
- Refactor BinData::Records for reusability and DRYness, with other item types in mind
- Header, Graphic portions should be reusable
- Think of a way to simplify string section
- Save output in a useful & workable format
- What would be the most useful way for end users to make modifications?
- Thinking a database would be good for mass changes
- JSON would also be good for small one off changes
- Need to do more research and think about this some more...
- Load output (json, db?? see #5) to rebuild custom DAT's
- Read in output format, assign to BinData::Records, use .to_binary_s to convert to binary, rotate back & build the .DAT file
- Handle String Sizes
- Two Options:
- Change all offsets to allow for larger names (should be more than enough space to fit the longest of descriptions) -- test and make sure client accepts this and doesn't break?
- Compare current string size (check :length on the strings) and see if the input fits, if not, adjust offsets to accomodate before assigning (would cause a mismatch between what gets written as an offset and what is being passed in, though... but in that case those wouldn't need to be maintained anyway, could probably not write them and just always calculate on the upload?)
- Contemplate and come up with a solution
-
Use FFXI directory to grab files, maybe just for initialization? Move to working directory?
-
Organize output dat files
-
Set up input arguments, or a prompt, to do various things (main program logic)
-
Re-use work to add support for more dat's