diff --git a/README.md b/README.md index c12ca9d..8087ce2 100644 --- a/README.md +++ b/README.md @@ -33,54 +33,57 @@ make .\itemsdat_decoder.exe --help ``` -**Version changes (might be wrong but still alligned)** +**Version changes** ### `version 11` -- **New Field:** `punch_option` - - **Description:** A new string field named `punch_option` was introduced. +- **New Field:** `punchOptions` (string) ### `version 12` -- **Data Skipping:** - - **Description:** An additional 13 bytes of data are skipped in this version. +- **New Fields:** + - `flags3` (int32_t) + - `bodyPart[9]` (uint8_t array) ### `version 13` -- **Data Skipping:** - - **Description:** An additional 4 bytes of data are skipped in this version. +- **New Field:** `lightRange` (int32_t) ### `version 14` -- **Data Skipping:** - - **Description:** An additional 4 bytes of data are skipped in this version. +- **New Field:** `unknownInt3` (int32_t) ### `version 15` -- **Data Handling:** - - **Description:** An additional 25 bytes of data are skipped, followed by reading a new string. +- **New Fields:** Chair/player functionality? + - `canSit` (uint8_t) + - `playerOffsetX` (int32_t) + - `playerOffsetY` (int32_t) + - `chairTextureX` (int32_t) + - `chairTextureY` (int32_t) + - `chairLegOffsetX` (int32_t) + - `chairLegOffsetY` (int32_t) + - `chairTexture` (string) ### `version 16` -- **Data Handling:** - - **Description:** A new string is read in this version. +- **New Field:** `itemRenderer` (string) ### `version 17` -- **Data Skipping:** - - **Description:** An additional 4 bytes of data are skipped in this version. +- **New Field:** `extraFlags1` (int32_t) ### `version 18` -- **Data Skipping:** - - **Description:** An additional 4 bytes of data are skipped in this version. +- **New Field:** `itemRendererHash` (int32_t) ### `version 19` -- **Data Handling:** - - **Description:** An additional 9 bytes of unknown data are read in this version. +- **New Field:** `unknownBytes2[9]` (uint8_t array) ### `version 21` -- **Data Handling:** - - **Description:** An additional 2 bytes of unknown data are read in this version. +- **New Field:** `unknownShort1` (int16_t) ### `version 22` -- **Data Handling:** - - **Description:** A new string field for item info is read in this version. +- **New Field:** `info` (string) ### `version 23` -- **Data Handling:** - - **Description:** Two additional 2-byte recipe values are read in this version. +- **New Fields:** Recipe system + - `recipe[0]` (uint16_t) + - `recipe[1]` (uint16_t) + +### `version 24` +- **New Field:** `unknownBytes3` (uint8_t) **License** - See `LICENSE` for license details. diff --git a/include/ItemDefinition.h b/include/ItemDefinition.h index 3d52690..32a90bb 100644 --- a/include/ItemDefinition.h +++ b/include/ItemDefinition.h @@ -82,6 +82,7 @@ typedef struct { int16_t unknownShort1; char* info; uint16_t recipe[2]; + uint8_t unknownBytes3; } ItemDefinition; typedef struct { diff --git a/items.dat b/items.dat index c2e46d6..baa47d8 100644 Binary files a/items.dat and b/items.dat differ diff --git a/src/ItemsDat.c b/src/ItemsDat.c index b31b806..7694e08 100644 --- a/src/ItemsDat.c +++ b/src/ItemsDat.c @@ -183,6 +183,7 @@ void itemsdat_decode(ItemsDat* dat) { item->recipe[0] = extendbuffer_readU16(&dat->buffer); item->recipe[1] = extendbuffer_readU16(&dat->buffer); } + if (dat->meta.version >= 24) item->unknownBytes3 = extendbuffer_readU8(&dat->buffer); } } }