git repos / saland

commit b9c45257

Poul Sander · 2023-04-25 21:20
b9c4525717cd1c1c22f0bc71489e49485b4776da patch · browse files
parent 911e07942afb2e940f842f1f565806a597a133b0

Now read all items from file

Changed files

M data/saland/items/base_items.json before
M src/saland/GameItems.cpp before
diff --git a/data/saland/items/base_items.json b/data/saland/items/base_items.json index bac47ef..f664684 100644 --- a/data/saland/items/base_items.json +++ b/data/saland/items/base_items.json
@@ -1,29 +1,44 @@
{
"items": [
{
- "icon" : "item_food_potato",
- "name" : "spell_spawn_item",
- "item_name" : "food_potato"
+ "itemid" : "barrel",
+ "sprite" : "item_barrel",
+ "sprite2" : "",
+ "radius" : 16.0,
+ "isStatic" : true,
+ "isDestructible" : true,
+ "health" : 20,
+ "pickup" : false
}
,{
- "icon" : "item_barrel",
- "name" : "spell_spawn_item",
- "item_name" : "barrel"
+ "itemid" : "tree_pine",
+ "sprite" : "tree_pine_trunk",
+ "sprite2" : "tree_pine_top",
+ "radius" : 20.0,
+ "isStatic" : true,
+ "isDestructible" : true,
+ "health" : 100,
+ "pickup" : false
}
,{
- "icon" : "tree_palm_icon",
- "name" : "spell_spawn_item",
- "item_name" : "tree_palm"
+ "itemid" : "tree_palm",
+ "sprite" : "tree_palm",
+ "sprite2" : "",
+ "radius" : 20.0,
+ "isStatic" : true,
+ "isDestructible" : true,
+ "health" : 100,
+ "pickup" : false
}
,{
- "icon" : "cactus_one",
- "name" : "spell_spawn_item",
- "item_name" : "cactus_full"
- }
- ,{
- "icon" : "tree_pine_icon",
- "name" : "spell_spawn_item",
- "item_name" : "tree_pine"
+ "itemid" : "cactus_full",
+ "sprite" : "cactus_full",
+ "sprite2" : "",
+ "radius" : 20.0,
+ "isStatic" : true,
+ "isDestructible" : true,
+ "health" : 100,
+ "pickup" : false
}
]
}
diff --git a/src/saland/GameItems.cpp b/src/saland/GameItems.cpp index 5bcbd14..2372619 100644 --- a/src/saland/GameItems.cpp +++ b/src/saland/GameItems.cpp
@@ -52,7 +52,7 @@ static void ReadItemFile(const std::string& filename) {
}
for (const auto& item : items.GetArray()) {
if (item.IsObject()) {
- ItemDef new_item = itemDef;
+ ItemDef new_item = itemDef;
for (const auto& member : item.GetObject()) {
if (member.name == "itemid") {
new_item.itemid = member.value.GetString();
@@ -93,44 +93,6 @@ static void ReadItemFile(const std::string& filename) {
}
static void initItems() {
- itemDef.sprite2 = "";
- itemDef.isDestructible = true;
- itemDef.health = 100.0f;
- itemDef.itemid = "";
- itemDef.pickup = false;
- {
- ItemDef barrel = itemDef;
- barrel.itemid = "barrel";
- barrel.radius = 16.0f;
- barrel.sprite = "item_barrel";
- barrel.isStatic = true;
- all_items[barrel.itemid] = barrel;
- }
- {
- ItemDef pine = itemDef;
- pine.itemid = "tree_pine";
- pine.radius = 20.0f;
- pine.sprite = "tree_pine_trunk";
- pine.sprite2 = "tree_pine_top";
- pine.isStatic = true;
- all_items[pine.itemid] = pine;
- }
- {
- ItemDef palm = itemDef;
- palm.itemid = "tree_palm";
- palm.radius = 20.0f;
- palm.sprite = "tree_palm";
- palm.isStatic = true;
- all_items[palm.itemid] = palm;
- }
- {
- ItemDef cactus = itemDef;
- cactus.itemid = "cactus_full";
- cactus.radius = 20.0f;
- cactus.sprite = "cactus_full";
- cactus.isStatic = true;
- all_items[cactus.itemid] = cactus;
- }
std::vector<std::string> file_list = sago::GetFileList(item_dir);
for(const std::string& file : file_list) {
std::string filename = fmt::format("{}{}", item_dir, file);
@@ -144,4 +106,4 @@ const ItemDef& getItem(const std::string& itemName) {
initItems();
}
return all_items[itemName];
-}
\ No newline at end of file
+}