From 3ad5afb81c32bf76bf739c6cd9ad98b21efb6b7d Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Thu, 2 Jul 2026 16:04:41 -0500 Subject: [PATCH] Fix item crash --- src/dusk/rpg/item/inventory.c | 3 +-- tools/item.py | 23 +++++++++-------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/dusk/rpg/item/inventory.c b/src/dusk/rpg/item/inventory.c index e1cb5cab..b3579ccb 100644 --- a/src/dusk/rpg/item/inventory.c +++ b/src/dusk/rpg/item/inventory.c @@ -22,8 +22,7 @@ void inventoryInit( inventory->storage = storage; inventory->storageSize = storageSize; - // Zero item ids. - memoryZero(inventory->storage, sizeof(inventorystack_t) * storageSize); + memoryZero(storage, sizeof(inventorystack_t) * storageSize); } bool_t inventoryItemExists(const inventory_t *inventory, const itemid_t item) { diff --git a/tools/item.py b/tools/item.py index 40d0a0b8..70defe19 100644 --- a/tools/item.py +++ b/tools/item.py @@ -30,23 +30,18 @@ with open(args.csv, newline="", encoding="utf-8") as f: item_types.append(item_type) rows[item_id] = row -# Assign enum values: types and IDs share a single counter so values never collide -count = 0 +# Assign enum values: types and IDs each start from 1 with NULL = 0. type_values = {} -id_values = {} - -count += 1 # 0 = NULL +type_count = 1 for t in item_types: - type_values[t] = count - count += 1 -# ITEM_TYPE_COUNT = count; item IDs continue from here -type_count = count + type_values[t] = type_count + type_count += 1 -count += 1 # type_count = ITEM_ID_NULL +id_values = {} +id_count = 1 for i in item_ids: - id_values[i] = count - count += 1 -id_count = count + id_values[i] = id_count + id_count += 1 # Count items per type type_item_counts = { t: 0 for t in item_types } @@ -68,7 +63,7 @@ out += [ "} itemtype_t;", "", "typedef enum {", - f" ITEM_ID_NULL = {type_count},", + " ITEM_ID_NULL = 0,", ] for i in item_ids: out.append(f" {id_enum(i)} = {id_values[i]},")