Explorar o código

Simplify town buildings configuration

Goal is to minimize amount of copy-pasted parts of town building
configuration and to reduce chance of modders accidentally breaking it.

For example, Grail in any town produces 5k gold and requires artifact to
be built. No need to copy-paste this in any town. And if modder wants to
more unique Grail, he provide custom parameters that will override
default properties.

As a bonus, since all building ID's are now in config, modders can use
it for reference instead of searching for examples

Changes:

- All H3 buildings now have entry in buildingsLibrary.json.
- Moved all common parameters of town buildings to buildingsLibrary.json
- Added all new building ID's to buildingsLibrary.json - level 8
dwelling, additional upgrades of dwellings & hordes
- Removed hardcoded mapping of strings to building ID's from code.

Should not break any existing mods, or cause them to fail validation
Ivan Savenko hai 3 meses
pai
achega
ae284e9c16

+ 87 - 1
config/buildingsLibrary.json

@@ -76,6 +76,20 @@
 	},
 	"resourceSilo":   { "id" : 15, "requires" : [ "marketplace" ] },
 	"blacksmith":     { "id" : 16 },
+	"special1":       { "id" : 17 },
+	"ship" :          { "id" : 20, "upgrades" : "shipyard" },
+	"special2":       { "id" : 21 },
+	"special3":       { "id" : 22 },
+	"special4":       { "id" : 23 },
+	"grail" :         {
+		"id" : 26,
+		"mode" : "grail",
+		"produce": { "gold": 5000 },
+	},
+	
+	"extraTownHall":  { "id" : 27, "requires" : [ "townHall" ], "mode" : "auto" },
+	"extraCityHall":  { "id" : 28, "requires" : [ "cityHall" ], "mode" : "auto" },
+	"extraCapitol":   { "id" : 29, "requires" : [ "capitol" ], "mode" : "auto" },
 
 	// Previously hardcoded buildings that might be used by mods
 	// Section 1 - building with bonuses during sieges
@@ -262,5 +276,77 @@
 				"val": 2
 			}
 		]
-	}
+	},
+	
+	// Section 5 - H3 creature-related buildings
+	"horde1" :     { "id" : 18 },
+	"horde1Upgr" : { "id" : 19, "mode" : "auto" },
+	"horde2" :     { "id" : 24 },
+	"horde2Upgr" : { "id" : 25, "mode" : "auto" },
+	
+	"dwellingLvl1": { "id" : 30 },
+	"dwellingLvl2": { "id" : 31 },
+	"dwellingLvl3": { "id" : 32 },
+	"dwellingLvl4": { "id" : 33 },
+	"dwellingLvl5": { "id" : 34 },
+	"dwellingLvl6": { "id" : 35 },
+	"dwellingLvl7": { "id" : 36 },
+
+	"dwellingUpLvl1": { "id" : 37 },
+	"dwellingUpLvl2": { "id" : 38 },
+	"dwellingUpLvl3": { "id" : 39 },
+	"dwellingUpLvl4": { "id" : 40 },
+	"dwellingUpLvl5": { "id" : 41 },
+	"dwellingUpLvl6": { "id" : 42 },
+	"dwellingUpLvl7": { "id" : 43 },
+
+	// Section 6 - VCMI extended creature-related buildings
+	"dwellingUp2Lvl1": { "id" : 44 },
+	"dwellingUp2Lvl2": { "id" : 45 },
+	"dwellingUp2Lvl3": { "id" : 46 },
+	"dwellingUp2Lvl4": { "id" : 47 },
+	"dwellingUp2Lvl5": { "id" : 48 },
+	"dwellingUp2Lvl6": { "id" : 49 },
+	"dwellingUp2Lvl7": { "id" : 50 },
+
+	"dwellingUp3Lvl1": { "id" : 51 },
+	"dwellingUp3Lvl2": { "id" : 52 },
+	"dwellingUp3Lvl3": { "id" : 53 },
+	"dwellingUp3Lvl4": { "id" : 54 },
+	"dwellingUp3Lvl5": { "id" : 55 },
+	"dwellingUp3Lvl6": { "id" : 56 },
+	"dwellingUp3Lvl7": { "id" : 57 },
+	
+	"dwellingUp4Lvl1": { "id" : 58 },
+	"dwellingUp4Lvl2": { "id" : 59 },
+	"dwellingUp4Lvl3": { "id" : 60 },
+	"dwellingUp4Lvl4": { "id" : 61 },
+	"dwellingUp4Lvl5": { "id" : 62 },
+	"dwellingUp4Lvl6": { "id" : 63 },
+	"dwellingUp4Lvl7": { "id" : 64 },
+	
+	"dwellingUp5Lvl1": { "id" : 65 },
+	"dwellingUp5Lvl2": { "id" : 66 },
+	"dwellingUp5Lvl3": { "id" : 67 },
+	"dwellingUp5Lvl4": { "id" : 68 },
+	"dwellingUp5Lvl5": { "id" : 69 },
+	"dwellingUp5Lvl6": { "id" : 70 },
+	"dwellingUp5Lvl7": { "id" : 71 },
+
+	"horde1Upgr2" : { "id" : 100, "mode" : "auto" },
+	"horde1Upgr3" : { "id" : 101, "mode" : "auto" },
+	"horde1Upgr4" : { "id" : 102, "mode" : "auto" },
+	"horde1Upgr5" : { "id" : 103, "mode" : "auto" },
+	"horde2Upgr2" : { "id" : 110, "mode" : "auto" },
+	"horde2Upgr3" : { "id" : 111, "mode" : "auto" },
+	"horde2Upgr4" : { "id" : 112, "mode" : "auto" },
+	"horde2Upgr5" : { "id" : 113, "mode" : "auto" },
+
+	"dwellingLvl8":    { "id" : 150 },
+	"dwellingUpLvl8":  { "id" : 151 },
+	"dwellingUp2Lvl8": { "id" : 152 },
+	"dwellingUp3Lvl8": { "id" : 153 },
+	"dwellingUp4Lvl8": { "id" : 154 },
+	"dwellingUp5Lvl8": { "id" : 155 }
+	
 }

+ 18 - 18
config/factions/castle.json

@@ -187,9 +187,9 @@
 					],
 					"requires" : [ "shipyard" ]
 				},
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl3" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl3", "requires" : [ "horde1" ], "mode" : "auto" },
-				"ship":           { "id" : 20, "upgrades" : "shipyard" },
+				"horde1":         { "upgrades" : "dwellingLvl3" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl3", "requires" : [ "horde1" ] },
+				"ship":           { },
 				"special2":       {
 					"requires" : [ "dwellingLvl4" ],
 					"mapObjectLikeBonuses" : "stables",
@@ -219,23 +219,23 @@
 					],
 					"upgrades" : "tavern"
 				},
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 }, "bonuses": [ { "type": "MORALE", "val": 2, "propagator": "PLAYER" } ] },
+				"grail":          { },
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl4" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "allOf", [ "blacksmith" ], [ "dwellingLvl1" ] ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "allOf", [ "mageGuild1" ], [ "dwellingLvl4" ] ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "special2" ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "dwellingLvl5" ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl4" ] },
+				"dwellingLvl4":   { "requires" : [ "allOf", [ "blacksmith" ], [ "dwellingLvl1" ] ] },
+				"dwellingLvl5":   { "requires" : [ "allOf", [ "mageGuild1" ], [ "dwellingLvl4" ] ] },
+				"dwellingLvl6":   { "requires" : [ "special2" ] },
+				"dwellingLvl7":   { "requires" : [ "dwellingLvl5" ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4" },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5" },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7" },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4" },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5" },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7" },
 
 				"horde2" : null,
 				"horde2Upgr" : null,

+ 21 - 21
config/factions/conflux.json

@@ -183,9 +183,9 @@
 				"blacksmith":     { "warMachine" : "ballista" },
 
 				"special1":       { "requires" : [ "marketplace" ], "marketModes" : ["resource-artifact", "artifact-resource"] },
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl1" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
-				"ship":           { "id" : 20, "upgrades" : "shipyard" },
+				"horde1":         { "upgrades" : "dwellingLvl1" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ] },
+				"ship":           { },
 				"special2":       {
 					"requires" : [ "mageGuild1" ],
 					"marketModes" : ["resource-skill"],
@@ -196,26 +196,26 @@
 						"earthMagic"
 					]
 				},
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 }},
-				"extraTownHall":  { "id" : 27, "requires" : [ "townHall" ], "mode" : "auto" },
-				"extraCityHall":  { "id" : 28, "requires" : [ "cityHall" ], "mode" : "auto" },
-				"extraCapitol":   { "id" : 29, "requires" : [ "capitol" ], "mode" : "auto" },
+				"grail":          { },
+				"extraTownHall":  { },
+				"extraCityHall":  { },
+				"extraCapitol":   { },
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "allOf", [ "dwellingLvl1" ], [ "mageGuild1" ] ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "allOf", [ "dwellingLvl1" ], [ "mageGuild1" ] ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "dwellingLvl2" ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "dwellingLvl3" ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl5" ] ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "dwellingLvl6" ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "allOf", [ "dwellingLvl1" ], [ "mageGuild1" ] ] },
+				"dwellingLvl3":   { "requires" : [ "allOf", [ "dwellingLvl1" ], [ "mageGuild1" ] ] },
+				"dwellingLvl4":   { "requires" : [ "dwellingLvl2" ] },
+				"dwellingLvl5":   { "requires" : [ "dwellingLvl3" ] },
+				"dwellingLvl6":   { "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl5" ] ] },
+				"dwellingLvl7":   { "requires" : [ "dwellingLvl6" ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4", "requires" : [ "dwellingLvl2" ] },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5" },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6", "requires" : [ "mageGuild2" ] },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7" },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4", "requires" : [ "dwellingLvl2" ] },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5" },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6", "requires" : [ "mageGuild2" ] },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7" },
 
 				"horde2" : null,
 				"horde2Upgr" : null,

+ 17 - 18
config/factions/dungeon.json

@@ -178,8 +178,8 @@
 				"blacksmith":     { "warMachine" : "ballista" },
 
 				"special1":       { "requires" : [ "marketplace" ], "marketModes" : ["resource-artifact", "artifact-resource"] },
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl1" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
+				"horde1":         { "upgrades" : "dwellingLvl1" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ] },
 				"special2":       {
 					"requires" : [ "mageGuild1" ],
 					"configuration" : {
@@ -211,24 +211,23 @@
 						]
 					}
 				},
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 },
-					"bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.spellpower", "val": 12 } ] },
+				"grail":          { "bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.spellpower", "val": 12 } ] },
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "allOf", [ "dwellingLvl2" ], [ "dwellingLvl3" ] ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "dwellingLvl4" ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "dwellingLvl4" ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "allOf", [ "mageGuild2" ], [ "dwellingLvl5" ], [ "dwellingLvl6" ] ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl4":   { "requires" : [ "allOf", [ "dwellingLvl2" ], [ "dwellingLvl3" ] ] },
+				"dwellingLvl5":   { "requires" : [ "dwellingLvl4" ] },
+				"dwellingLvl6":   { "requires" : [ "dwellingLvl4" ] },
+				"dwellingLvl7":   { "requires" : [ "allOf", [ "mageGuild2" ], [ "dwellingLvl5" ], [ "dwellingLvl6" ] ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4" },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5" },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7", "requires" : [ "mageGuild3" ] },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4" },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5" },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7", "requires" : [ "mageGuild3" ] },
 
 				"horde2" : null,
 				"horde2Upgr" : null,

+ 19 - 19
config/factions/fortress.json

@@ -186,9 +186,9 @@
 						]
 					}
 				},
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl1" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
-				"ship":           { "id" : 20, "upgrades" : "shipyard" },
+				"horde1":         { "upgrades" : "dwellingLvl1" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ] },
+				"ship":           { },
 				"special2":       {
 					"bonuses": [
 						{
@@ -209,29 +209,29 @@
 					],
 					"requires" : [ "special2" ]
 				},
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 }, 
+				"grail":          {
 					"bonuses": [
 						{ "type": "PRIMARY_SKILL", "subtype": "primarySkill.attack", "val": 10 },
 						{ "type": "PRIMARY_SKILL", "subtype": "primarySkill.defence", "val": 10 }
 					]
 				},
 
-				"extraCapitol":   { "id" : 29, "requires" : [ "capitol" ], "mode" : "auto" },
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "dwellingLvl3" ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "allOf", [ "dwellingLvl2" ], [ "dwellingLvl3" ] ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "dwellingLvl2" ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl6" ] ] },
+				"extraCapitol":   { "requires" : [ "capitol" ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl4":   { "requires" : [ "dwellingLvl3" ] },
+				"dwellingLvl5":   { "requires" : [ "allOf", [ "dwellingLvl2" ], [ "dwellingLvl3" ] ] },
+				"dwellingLvl6":   { "requires" : [ "dwellingLvl2" ] },
+				"dwellingLvl7":   { "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl6" ] ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1", "requires" : [ "tavern" ] },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4" },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5", "requires" : [ "resourceSilo" ] },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7" },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1", "requires" : [ "tavern" ] },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4" },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5", "requires" : [ "resourceSilo" ] },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7" },
 
 				"horde2" : null,
 				"horde2Upgr" : null,

+ 19 - 19
config/factions/inferno.json

@@ -178,8 +178,8 @@
 				"resourceSilo":   { "produce": { "mercury": 1 } },
 				"blacksmith":     { "warMachine" : "ammoCart" },
 
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl1" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
+				"horde1":         { "upgrades" : "dwellingLvl1" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ] },
 				"special2":       {
 					"bonuses": [
 						{
@@ -203,25 +203,25 @@
 						]
 					}
 				},
-				"horde2":         { "id" : 24, "upgrades" : "dwellingLvl3" },
-				"horde2Upgr":     { "id" : 25, "upgrades" : "dwellingUpLvl3", "requires" : [ "horde2" ], "mode" : "auto" },
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 }},
+				"horde2":         { "upgrades" : "dwellingLvl3" },
+				"horde2Upgr":     { "upgrades" : "dwellingUpLvl3", "requires" : [ "horde2" ] },
+				"grail":          { },
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "dwellingLvl2" ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "dwellingLvl4" ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "allOf", [ "mageGuild1" ], [ "dwellingLvl4" ] ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "allOf", [ "dwellingLvl5" ], [ "dwellingLvl6" ] ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl4":   { "requires" : [ "dwellingLvl2" ] },
+				"dwellingLvl5":   { "requires" : [ "dwellingLvl4" ] },
+				"dwellingLvl6":   { "requires" : [ "allOf", [ "mageGuild1" ], [ "dwellingLvl4" ] ] },
+				"dwellingLvl7":   { "requires" : [ "allOf", [ "dwellingLvl5" ], [ "dwellingLvl6" ] ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4" },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5", "requires" : [ "mageGuild2" ] },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7" },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4" },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5", "requires" : [ "mageGuild2" ] },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7" },
 
 				"ship" : null,
 				"shipyard" : null,

+ 21 - 22
config/factions/necropolis.json

@@ -184,34 +184,33 @@
 				"blacksmith":     { "warMachine" : "firstAidTent" },
 
 				"special1":       { "requires" : [ "fort" ], "bonuses": [ { "type": "DARKNESS", "val": 20  } ] },
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl1", "requires" : [ "special3" ] },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
-				"ship":           { "id" : 20, "upgrades" : "shipyard" },
+				"horde1":         { "upgrades" : "dwellingLvl1", "requires" : [ "special3" ] },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ] },
+				"ship":           { },
 				"special2":       { "requires" : [ "mageGuild1" ],
 					"bonuses": [ { "type": "UNDEAD_RAISE_PERCENTAGE", "val": 10, "propagator": "PLAYER" } ] },
 				"special3":       { "requires" : [ "dwellingLvl1" ], "marketModes" : ["creature-undead"] },
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 },
-					"bonuses": [ { "type": "UNDEAD_RAISE_PERCENTAGE", "val": 20, "propagator": "PLAYER" } ] },
+				"grail":          { "bonuses": [ { "type": "UNDEAD_RAISE_PERCENTAGE", "val": 20, "propagator": "PLAYER" } ] },
 
-				"extraTownHall":  { "id" : 27, "requires" : [ "townHall" ], "mode" : "auto" },
-				"extraCityHall":  { "id" : 28, "requires" : [ "cityHall" ], "mode" : "auto" },
-				"extraCapitol":   { "id" : 29, "requires" : [ "capitol" ], "mode" : "auto" },
+				"extraTownHall":  { },
+				"extraCityHall":  { },
+				"extraCapitol":   { },
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "dwellingLvl2" ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "allOf", [ "mageGuild1"  ], [ "dwellingLvl2" ] ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl5" ] ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "dwellingLvl6" ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl4":   { "requires" : [ "dwellingLvl2" ] },
+				"dwellingLvl5":   { "requires" : [ "allOf", [ "mageGuild1"  ], [ "dwellingLvl2" ] ] },
+				"dwellingLvl6":   { "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl5" ] ] },
+				"dwellingLvl7":   { "requires" : [ "dwellingLvl6" ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4", "requires" : [ "special2" ] },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5" },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7" },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4", "requires" : [ "special2" ] },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5" },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7" },
 				
 				"horde2" : null,
 				"horde2Upgr" : null,

+ 22 - 22
config/factions/rampart.json

@@ -182,8 +182,8 @@
 				"blacksmith":     { "warMachine" : "firstAidTent" },
 
 				"special1":       { "type" : "mysticPond" },
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl2" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl2", "requires" : [ "horde1" ], "mode" : "auto" },
+				"horde1":         { "upgrades" : "dwellingLvl2" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl2", "requires" : [ "horde1" ] },
 				"special2":       { 
 					"bonuses": [
 						{
@@ -194,29 +194,29 @@
 					"upgrades" : "special1"
 				},
 				"special3":       { "type" : "treasury", "requires" : [ "horde1" ] },
-				"horde2":         { "id" : 24, "upgrades" : "dwellingLvl5" },
-				"horde2Upgr":     { "id" : 25, "upgrades" : "dwellingUpLvl5", "requires" : [ "horde2" ], "mode" : "auto" },
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 }, "bonuses": [ { "type": "LUCK", "val": 2, "propagator": "PLAYER" } ] },
+				"horde2":         { "upgrades" : "dwellingLvl5" },
+				"horde2Upgr":     { "upgrades" : "dwellingUpLvl5", "requires" : [ "horde2" ] },
+				"grail":          { "bonuses": [ { "type": "LUCK", "val": 2, "propagator": "PLAYER" } ] },
 
-				"extraTownHall":  { "id" : 27, "requires" : [ "townHall" ], "mode" : "auto" },
-				"extraCityHall":  { "id" : 28, "requires" : [ "cityHall" ], "mode" : "auto" },
-				"extraCapitol":   { "id" : 29, "requires" : [ "capitol" ], "mode" : "auto" },
+				"extraTownHall":  { },
+				"extraCityHall":  { },
+				"extraCapitol":   { },
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "dwellingLvl3" ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "dwellingLvl3" ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl5" ] ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "allOf", [ "dwellingLvl6" ], [ "mageGuild2" ] ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl4":   { "requires" : [ "dwellingLvl3" ] },
+				"dwellingLvl5":   { "requires" : [ "dwellingLvl3" ] },
+				"dwellingLvl6":   { "requires" : [ "allOf", [ "dwellingLvl4" ], [ "dwellingLvl5" ] ] },
+				"dwellingLvl7":   { "requires" : [ "allOf", [ "dwellingLvl6" ], [ "mageGuild2" ] ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4" },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5" },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7", "requires" : [ "mageGuild3" ] },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4" },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5" },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7", "requires" : [ "mageGuild3" ] },
 				
 				"ship" : null,
 				"shipyard" : null,

+ 17 - 18
config/factions/stronghold.json

@@ -172,8 +172,8 @@
 				"blacksmith":     { "warMachine" : "ammoCart" },
 
 				"special1":       { "type" : "escapeTunnel", "requires" : [ "fort" ] },
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl1" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
+				"horde1":         { "upgrades" : "dwellingLvl1" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ] },
 				"special2":       { "requires" : [ "marketplace" ], "marketModes" : ["creature-resource"] },
 				"special3":       { "warMachine" : "ballista", "requires" : [ "blacksmith" ] },
 				"special4":       { 
@@ -188,24 +188,23 @@
 						]
 					}
 				},
-				"grail":          { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 },
-					"bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.attack", "val": 20 } ] },
+				"grail":          { "bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.attack", "val": 20 } ] },
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "dwellingLvl3" ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "dwellingLvl2" ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "dwellingLvl4" ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "dwellingLvl5" ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl4":   { "requires" : [ "dwellingLvl3" ] },
+				"dwellingLvl5":   { "requires" : [ "dwellingLvl2" ] },
+				"dwellingLvl6":   { "requires" : [ "dwellingLvl4" ] },
+				"dwellingLvl7":   { "requires" : [ "dwellingLvl5" ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2", "requires" : [ "dwellingUpLvl1" ] },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3", "requires" : [ "blacksmith" ] },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4", "requires" : [ "mageGuild1" ] },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5" },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7" },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2", "requires" : [ "dwellingUpLvl1" ] },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3", "requires" : [ "blacksmith" ] },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4", "requires" : [ "mageGuild1" ] },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5" },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7" },
 				
 				"horde2" : null,
 				"horde2Upgr" : null,

+ 16 - 17
config/factions/tower.json

@@ -177,8 +177,8 @@
 				"blacksmith":     { "warMachine" : "ammoCart" },
 
 				"special1":       { "requires" : [ "marketplace" ], "marketModes" : ["resource-artifact", "artifact-resource"] },
-				"horde1":         { "id" : 18, "upgrades" : "dwellingLvl2" },
-				"horde1Upgr":     { "id" : 19, "upgrades" : "dwellingUpLvl2", "requires" : [ "horde1" ], "mode" : "auto" },
+				"horde1":         { "upgrades" : "dwellingLvl2" },
+				"horde1Upgr":     { "upgrades" : "dwellingUpLvl2", "requires" : [ "horde1" ] },
 				"special2":       { 
 					"requires" : [ "fort" ],
 					"bonuses": [
@@ -199,7 +199,6 @@
 					}
 				},
 				"grail":          { 
-					"produce" : { "gold": 5000 },
 					"bonuses": [
 						{ "type": "PRIMARY_SKILL", "subtype": "primarySkill.knowledge", "val": 15 },
 						{ "type": "COMBAT_MANA_BONUS", "val": 150 },
@@ -207,21 +206,21 @@
 					]
 				},
 
-				"dwellingLvl1":   { "id" : 30, "requires" : [ "fort" ] },
-				"dwellingLvl2":   { "id" : 31, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl3":   { "id" : 32, "requires" : [ "dwellingLvl1" ] },
-				"dwellingLvl4":   { "id" : 33, "requires" : [ "allOf", [ "mageGuild1" ], [ "dwellingLvl2" ], [ "dwellingLvl3" ] ] },
-				"dwellingLvl5":   { "id" : 34, "requires" : [ "dwellingLvl4" ] },
-				"dwellingLvl6":   { "id" : 35, "requires" : [ "dwellingLvl4" ] },
-				"dwellingLvl7":   { "id" : 36, "requires" : [ "allOf", [ "dwellingLvl5" ], [ "dwellingLvl6" ] ] },
+				"dwellingLvl1":   { "requires" : [ "fort" ] },
+				"dwellingLvl2":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl3":   { "requires" : [ "dwellingLvl1" ] },
+				"dwellingLvl4":   { "requires" : [ "allOf", [ "mageGuild1" ], [ "dwellingLvl2" ], [ "dwellingLvl3" ] ] },
+				"dwellingLvl5":   { "requires" : [ "dwellingLvl4" ] },
+				"dwellingLvl6":   { "requires" : [ "dwellingLvl4" ] },
+				"dwellingLvl7":   { "requires" : [ "allOf", [ "dwellingLvl5" ], [ "dwellingLvl6" ] ] },
 
-				"dwellingUpLvl1": { "id" : 37, "upgrades" : "dwellingLvl1" },
-				"dwellingUpLvl2": { "id" : 38, "upgrades" : "dwellingLvl2" },
-				"dwellingUpLvl3": { "id" : 39, "upgrades" : "dwellingLvl3" },
-				"dwellingUpLvl4": { "id" : 40, "upgrades" : "dwellingLvl4", "requires" : [ "special3" ] },
-				"dwellingUpLvl5": { "id" : 41, "upgrades" : "dwellingLvl5" },
-				"dwellingUpLvl6": { "id" : 42, "upgrades" : "dwellingLvl6" },
-				"dwellingUpLvl7": { "id" : 43, "upgrades" : "dwellingLvl7" },
+				"dwellingUpLvl1": { "upgrades" : "dwellingLvl1" },
+				"dwellingUpLvl2": { "upgrades" : "dwellingLvl2" },
+				"dwellingUpLvl3": { "upgrades" : "dwellingLvl3" },
+				"dwellingUpLvl4": { "upgrades" : "dwellingLvl4", "requires" : [ "special3" ] },
+				"dwellingUpLvl5": { "upgrades" : "dwellingLvl5" },
+				"dwellingUpLvl6": { "upgrades" : "dwellingLvl6" },
+				"dwellingUpLvl7": { "upgrades" : "dwellingLvl7" },
 
 				"horde2" : null,
 				"horde2Upgr" : null,

+ 0 - 48
lib/constants/StringConstants.h

@@ -127,54 +127,6 @@ namespace NPathfindingLayer
 
 namespace MappedKeys
 {
-
-	static const std::map<std::string, BuildingID> BUILDING_NAMES_TO_TYPES =
-	{
-		{ "special1", BuildingID::SPECIAL_1 },
-		{ "special2", BuildingID::SPECIAL_2 },
-		{ "special3", BuildingID::SPECIAL_3 },
-		{ "special4", BuildingID::SPECIAL_4 },
-		{ "grail", BuildingID::GRAIL },
-		{ "mageGuild1", BuildingID::MAGES_GUILD_1 },
-		{ "mageGuild2", BuildingID::MAGES_GUILD_2 },
-		{ "mageGuild3", BuildingID::MAGES_GUILD_3 },
-		{ "mageGuild4", BuildingID::MAGES_GUILD_4 },
-		{ "mageGuild5", BuildingID::MAGES_GUILD_5 },
-		{ "tavern", BuildingID::TAVERN },
-		{ "shipyard", BuildingID::SHIPYARD },
-		{ "fort", BuildingID::FORT },
-		{ "citadel", BuildingID::CITADEL },
-		{ "castle", BuildingID::CASTLE },
-		{ "villageHall", BuildingID::VILLAGE_HALL },
-		{ "townHall", BuildingID::TOWN_HALL },
-		{ "cityHall", BuildingID::CITY_HALL },
-		{ "capitol", BuildingID::CAPITOL },
-		{ "marketplace", BuildingID::MARKETPLACE },
-		{ "resourceSilo", BuildingID::RESOURCE_SILO },
-		{ "blacksmith", BuildingID::BLACKSMITH },
-		{ "horde1", BuildingID::HORDE_1 },
-		{ "horde1Upgr", BuildingID::HORDE_1_UPGR },
-		{ "horde2", BuildingID::HORDE_2 },
-		{ "horde2Upgr", BuildingID::HORDE_2_UPGR },
-		{ "ship", BuildingID::SHIP },
-		{ "dwellingLvl1", BuildingID::DWELL_LVL_1 },
-		{ "dwellingLvl2", BuildingID::DWELL_LVL_2 },
-		{ "dwellingLvl3", BuildingID::DWELL_LVL_3 },
-		{ "dwellingLvl4", BuildingID::DWELL_LVL_4 },
-		{ "dwellingLvl5", BuildingID::DWELL_LVL_5 },
-		{ "dwellingLvl6", BuildingID::DWELL_LVL_6 },
-		{ "dwellingLvl7", BuildingID::DWELL_LVL_7 },
-		{ "dwellingLvl8", BuildingID::DWELL_LVL_8 },
-		{ "dwellingUpLvl1", BuildingID::DWELL_LVL_1_UP },
-		{ "dwellingUpLvl2", BuildingID::DWELL_LVL_2_UP },
-		{ "dwellingUpLvl3", BuildingID::DWELL_LVL_3_UP },
-		{ "dwellingUpLvl4", BuildingID::DWELL_LVL_4_UP },
-		{ "dwellingUpLvl5", BuildingID::DWELL_LVL_5_UP },
-		{ "dwellingUpLvl6", BuildingID::DWELL_LVL_6_UP },
-		{ "dwellingUpLvl7", BuildingID::DWELL_LVL_7_UP },
-		{ "dwellingUpLvl8", BuildingID::DWELL_LVL_8_UP },
-	};
-
 	static const std::map<std::string, BuildingSubID::EBuildingSubID> SPECIAL_BUILDINGS =
 	{
 		{ "mysticPond", BuildingSubID::MYSTIC_POND },

+ 1 - 8
lib/entities/faction/CTownHandler.cpp

@@ -266,16 +266,9 @@ void CTownHandler::loadBuilding(CTown * town, const std::string & stringID, cons
 	assert(!source.getModScope().empty());
 
 	auto * ret = new CBuilding();
-	ret->bid = vstd::find_or(MappedKeys::BUILDING_NAMES_TO_TYPES, stringID, BuildingID::NONE);
+	ret->bid = BuildingID(source["id"].Integer());
 	ret->subId = BuildingSubID::NONE;
 
-	if(ret->bid == BuildingID::NONE && !source["id"].isNull())
-	{
-		// FIXME: A lot of false-positives with no clear way to handle them in mods
-		//logMod->warn("Building %s: id field is deprecated", stringID);
-		ret->bid = source["id"].isNull() ? BuildingID(BuildingID::NONE) : BuildingID(source["id"].Float());
-	}
-
 	if (ret->bid == BuildingID::NONE)
 		logMod->error("Building '%s' isn't recognized and won't work properly. Correct the typo or update VCMI.", stringID);