Read named grant keys and signed values from new COBJECTS JSON

Grant pair lists now carry name strings ("HLR-021", "Unarmed Combat")
instead of integer hashes, so they are stored as name -> value maps.
Unresolved hashes are kept as their decimal string and logged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MagicBotandClaude Opus 5.5 committed 2026-10-16 14:46:37 -04:00
1 parent b56d4ee243
commit 1ac5a248db
5 files changed
+52 -32

No files matched your search

+5 -7
View File
@@ -189,18 +189,16 @@ public class RuneTemplate {
public int rune_natural_power_attack;
public final HashMap<String, String> rune_sparse_data = new HashMap<>();
// One entry of rune_skill_grant.
// skill_granted_skills entries look like [hash, value] pairs; not confirmed in the client.
// skill_granted_attrs, skill_granted_powers and skill_monster_types are empty
// in every RUNE file, so they are kept as raw JSON.
// One entry of rune_skill_grant; same layout as PowerGrant.
// skill_monster_types is empty in every RUNE file, so it is kept as raw JSON.
public static class SkillGrant {
public String skill_type;
public int skill_value;
public JSONArray skill_granted_attrs;
public final ArrayList<int[]> skill_granted_skills = new ArrayList<>();
public JSONArray skill_granted_powers;
public final LinkedHashMap<String, Integer> skill_granted_attrs = new LinkedHashMap<>();
public final LinkedHashMap<String, Integer> skill_granted_skills = new LinkedHashMap<>();
public final LinkedHashMap<String, Integer> skill_granted_powers = new LinkedHashMap<>();
public JSONArray skill_monster_types;
}