/d2s.d2r

Fork of dschu012/d2s but targeting (only) D2R.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

A fork of dschu012/d2s but targeting (only) D2R.
Assumes TypeScript@4.9

Below is the upstream readme (with fix).


d2s

The goal of this project is to create an es6 compliant reader/writer of Diablo II save files. Additionally, the library should be able to consume files generated by nokka's Go implementation d2s, therefore the output of reading a save will closely mirror the Go's output.

Examples

Using d2s-ui for a frontend:

API/General Usage
/**
* @param buffers: object of ALL txt files. example: {
*  "ItemStatCost.txt": "Stat\tIDt\Send...",
*  "string.txt": "WarrivAct1IntroGossip1\t45}Greetings,...",
*  ...
* }
* @return constants: constant data required for parsing built from the txt files.
**/
/** defect: dozens unnecessary or optional txt/json are mandated to create ConstantData */
function readConstantData(buffers: { [key: string]: string }): types.IConstantData

/**
* @param buffer: Uint8Array representation of the file
* @param constants: constant data used for reading the files. @see readConstantData or constants.bundle.min.js
* @param userConfig: optional configuration. there is none for now.
* @return d2s: the parsed save information
**/
/** for character */
function read(buffer: Uint8Array, constants: types.IConstantData, userConfig?: types.IConfig): Promise<types.ID2S>;
/** for shared stash */
function readss(buffer: Uint8Array, constants: types.IConstantData, userConfig?: types.IConfig): Promise<types.ID2I>;

/**
* @param d2s: the parsed save information
* @param constants: constant data used for reading the files. @see readConstantData or constants.bundle.min.js
* @param userConfig: optional configuration. there is none for now.
* @return buffer: Uint8Array representation of the file
**/
/** for character or shared stash */
function write(data: types.ID2S|types.ID2I, constants: types.IConstantData, userConfig?: types.IConfig): Promise<Uint8Array>;
Useful Links: