feat: expand item catalog with equipment, official in-game localizations, and DLC mappings - #4
Open
aiden0rchad wants to merge 1 commit into
Conversation
…ions, and DLC mappings - Add 601 EquipmentItem rows (weapons, harpoons, charms, diving gear) and 48 SubEquipment rows into reference.sqlite, mapped to their save-side equipment TIDs. - Integrate official game localization tables across English, Korean, Simplified Chinese, and Traditional Chinese for 1,236 unique item and equipment text keys. - Prioritize direct TID matches over ItemDataID references, ensuring charms like 3017001 resolve to their equipped charm name (Dolphin Necklace / 돌고래의 목걸이 / 海豚項鍊) rather than the raw unappraised pickup key Unidentified LongDash. - Enhance prettify with prefix stripping (Item_JDLC_, Item_) and CamelCase handling for untranslated DLC/cutscene items (Memory of Yoshie). - Fall back to localized "item" instead of repeating slot IDs (#id #id) when an unknown item is encountered in the inventory list. - Support multi-language item search in ReferenceDB.searchItems matching across localized strings, developer keys, and numeric IDs. - Add DLC 2 (May / Guilty Gear 14252101) and DLC 4 (In the Jungle 14252301) to dlcTypeToID in IngredientOps and craftDLCTypeToID in CraftMaterialOps. - Add Scripts/build_reference_db.py to regenerate reference.sql and reference.sqlite deterministically from game tables and text assets. - Add test suite in NewEquipmentAndItemLookupTests and update ExpandedEditingTests.
aiden0rchad
force-pushed
the
feature/item-identifiers-and-equipment
branch
from
September 13, 2026 23:49
39c3dd1 to
b4dd80a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR addresses unidentified items (
#<id> #<id>), crude developer keys (e.g.Unidentified LongDash #3017001), missing equipment/weapons/charms, and lack of localization in the item inventory view. It also integrates official publisher-shipped translations, expands the reference database with 601 equipment items, adds full DLC mappings for In the Jungle and May DLCs, and enhances item search.Context & Root Cause
reference.sqlite: The existing database only contained 563 base/Dredge items fromDR_GameData_Item.json. All 601 equipment items (DR_GameData_Equipment.json, TIDs3010001–43017107: rifles, shotguns, dart guns, harpoon guns, melee weapons, and charms) and 48 subequipment items were absent. Because save files store equipped and stored equipment inInventoryItemSlotunder these equipment TIDs, they showed up unidentified as#3010001 #3010001,#3013111 #3013111, etc.3017001, the previous query matched row1014903inItems(an unappraised pickup whoseItemDataIDhappened to be3017001).prettifystripped_Nameand replaced_with space, renderingUnidentified LongDash #3017001. In reality, equipment3017001isCharm_LongDash_Name— the Dolphin Necklace (돌고래의 목걸이/海豚項鍊), while1014903is the Rusty Dolphin Necklace.Bacon_Relic->Bacon Relic), completely ignoring the publisher's official localization sheets.dlcTypeToIDinIngredientOps.swiftandcraftDLCTypeToIDinCraftMaterialOps.swiftomitted DLC 2 (May / Guilty Gear14252101) and DLC 4 (In the Jungle14252301), leaving 156 Jungle craft materials and 134 Jungle ingredients unhandled.#id #id: InSaveEditorModel.inventoryRows(), if an item had no name in the database,namewas set to"#\(slot.itemID)". InTableRows.swift, the view displayedText(row.name)andText(verbatim: "#\(row.id)"), rendering#1019505 #1019505.Changes
reference.sql&reference.sqlite):Items: Expanded to 1,063 items fromDR_GameData_Item.json, retaining exact existing schema and column order for 100% backward compatibility.Ingredients: Expanded to 462 rows.Equipment: Added 601 rows fromDR_GameData_Equipment.json(guns, harpoons, charms, melee).SubEquipment: Added 48 rows.Translations: Added 1,236 localized item and equipment entries withen,ko,zh_hans, andzh_hantextracted directly from the game's official localization tables (ItemNameText,InstanceItemText,DLC_JungleItemText, etc.).ItemLookup: Added unified VIEW across items, equipment, and subequipment.Sources/DaveSaveCore/ReferenceDB.swift):TIDmatches overItemDataIDmatches so equipment and charms resolve correctly.prettify.searchItemsto search across localized names in all languages, developer text keys, and numeric IDs.prettifywith prefix stripping (Item_JDLC_,Item_) and CamelCase splitting for untranslated DLC items (MemoryOfYoshie->Memory of Yoshie).IngredientOps.swift&CraftMaterialOps.swift):14252101) and DLC 4 (14252301) todlcTypeToIDandcraftDLCTypeToID.SaveEditorModel.swift):item(아이템/道具) instead of#idto avoid rendering duplicated IDs#id #id.Scripts/build_reference_db.py&Scripts/gen_refdb.sh):build_reference_db.pyto regenerate the database and SQL dump deterministically from game data.gen_refdb.shto supportbuild_reference_db.pyand verify updated row counts.Tests/DaveSaveCoreTests/NewEquipmentAndItemLookupTests.swiftcovering equipment lookups, charms, harpoons, multi-language resolution, search, and Jungle DLC craft materials.ExpandedEditingTests.swiftto assert the official nameMachine Componentfor item1014980.Scripts/check_catalog.pypasses all validation and terminology checks.Verification
GameSave_00_GD.sav) containing 62 inventory slots: all 62 items (including weapons3010001,3010011,3011261,3012001, harpoons3013111,3013132, charms3017001–3017045, cutscenes1019500–1019506, boat skin1019603) resolve with 0 unidentified items in English, Korean, and Traditional Chinese.