mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-06 09:09:40 +02:00
Large changeset, first part of editing H3 objects via mods feature. Changes:
- loading of all objects (including H3 objects) will be directed by mod handlers - common base for all handlers accessible from mod system (IHanderBase) - json format changes: use struct with string ID's instead of vector - fixed some gcc/clang errors and warnings - fixed several cases of memory leaks and invalid memory access (mostly related to usage of bonus system and/or identifiers resolution) Note that right now loading is much slower than before due to excessive json validation (or not fast enough validator)
This commit is contained in:
@@ -74,50 +74,50 @@
|
||||
"capitol" : "AVCNECZ0.DEF"
|
||||
},
|
||||
"structures" :
|
||||
[
|
||||
{ "animation" : "TBNCEXT2.def", "x" : 25, "y" : 279 },
|
||||
{ "id" : 0, "animation" : "TBNCMAGE.def", "x" : 341, "y" : 116, "z" : -1, "border" : "TONMAG1.bmp", "area" : "TZNMAG1.bmp" },
|
||||
{ "id" : 1, "animation" : "TBNCMAG2.def", "x" : 341, "y" : 97, "z" : -1, "border" : "TONMAG2.bmp", "area" : "TZNMAG2.bmp" },
|
||||
{ "id" : 2, "animation" : "TBNCMAG3.def", "x" : 341, "y" : 78, "z" : -1, "border" : "TONMAG3.bmp", "area" : "TZNMAG3.bmp" },
|
||||
{ "id" : 3, "animation" : "TBNCMAG4.def", "x" : 340, "y" : 62, "z" : -1, "border" : "TONMAG4.bmp", "area" : "TZNMAG4.bmp" },
|
||||
{ "id" : 4, "animation" : "TBNCMAG5.def", "x" : 343, "y" : 35, "z" : -1, "border" : "TONMAG5.bmp", "area" : "TZNMAG5.bmp" },
|
||||
{ "id" : 5, "animation" : "TBNCTVRN.def", "x" : 508, "y" : 189, "border" : "TONTAV.bmp", "area" : "TZNTAV.bmp" },
|
||||
{ "id" : 6, "animation" : "TBNCDOCK.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPBA.bmp", "area" : "TZNSHPBA.bmp" },
|
||||
{ "id" : 7, "animation" : "TBNCCSTL.def", "x" : 138, "y" : 66, "border" : "TONCAS1.bmp", "area" : "TZNCAS1.bmp" },
|
||||
{ "id" : 8, "animation" : "TBNCCAS2.def", "x" : 139, "y" : 66, "border" : "TONCAS2.bmp", "area" : "TZNCAS2.bmp" },
|
||||
{ "id" : 9, "animation" : "TBNCCAS3.def", "x" : 34, "y" : 18, "border" : "TONCAS3.bmp", "area" : "TZNCAS3.bmp" },
|
||||
{ "id" : 10, "animation" : "TBNCHALL.def", "x" : 468, "y" : 76, "z" : -1, "border" : "TONHAL1.bmp", "area" : "TZNHAL1.bmp" },
|
||||
{ "id" : 11, "animation" : "TBNCHAL2.def", "x" : 482, "y" : 56, "z" : -1, "border" : "TONHAL2.bmp", "area" : "TZNHAL2.bmp" },
|
||||
{ "id" : 12, "animation" : "TBNCHAL3.def", "x" : 478, "y" : 26, "z" : -1, "border" : "TONHAL3.bmp", "area" : "TZNHAL3.bmp" },
|
||||
{ "id" : 13, "animation" : "TBNCHAL4.def", "x" : 481, "y" : 26, "z" : -1, "border" : "TONHAL4.bmp", "area" : "TZNHAL4.bmp" },
|
||||
{ "id" : 14, "animation" : "TBNCMARK.def", "x" : 347, "y" : 215, "z" : 2, "border" : "TONMRK1.bmp", "area" : "TZNMRK1.bmp" },
|
||||
{ "id" : 15, "animation" : "TBNCSILO.def", "x" : 276, "y" : 185, "z" : 1, "border" : "TONMRK2.bmp", "area" : "TZNMRK2.bmp" },
|
||||
{ "id" : 16, "animation" : "TBNCBLAK.def", "x" : 382, "y" : 252, "z" : 4, "border" : "TONSMITA.bmp", "area" : "TZNSMITA.bmp" },
|
||||
{ "id" : 17, "animation" : "TBNCSPEC.def", "x" : 18, "y" : 0, "z" : -1, "border" : "TONSHRDA.bmp", "area" : "TZNSHRDA.bmp" },
|
||||
{ "id" : 18, "animation" : "TBNCHRD1.def", "x" : 80, "y" : 222, "z" : 4, "border" : "TONSKE1H.bmp", "area" : "TZNSKE1H.bmp", "hidden" : true },
|
||||
{ "id" : 19, "animation" : "TBNCHRD2.def", "x" : 64, "y" : 222, "z" : 4, "border" : "TONSKE2H.bmp", "area" : "TZNSKE2H.bmp", "hidden" : true, "builds" : 18 },
|
||||
{ "id" : 20, "animation" : "TBNCBOAT.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPNA.bmp", "area" : "TZNSHPNA.bmp", "hidden" : true },
|
||||
{ "id" : 21, "animation" : "TBNCEXT0.def", "x" : 307, "y" : 61, "z" : -2, "border" : "TONNECRA.bmp", "area" : "TZNNECRA.bmp" },
|
||||
{ "id" : 22, "animation" : "TBNCEXT1.def", "x" : 247, "y" : 275, "z" : 4, "border" : "TONSKELT.bmp", "area" : "TZNSKELT.bmp" },
|
||||
{ "id" : 26, "animation" : "TBNCHOLY.def", "x" : 410, "y" : 88, "border" : "TONHOLYA.bmp", "area" : "TZNHOLYA.bmp" },
|
||||
{ "id" : 27, "animation" : "TBNCEXT3.def", "x" : 0, "y" : 241 },
|
||||
{ "id" : 28, "animation" : "TBNCEXT4.def", "x" : 321, "y" : 255 },
|
||||
{ "id" : 29, "animation" : "TBNCEXT5.def", "x" : 475, "y" : 257 },
|
||||
{ "id" : 30, "animation" : "TBNCDW_0.def", "x" : 80, "y" : 222, "z" : 4, "border" : "TONSKEL1.bmp", "area" : "TZNSKEL1.bmp" },
|
||||
{ "id" : 31, "animation" : "TBNCDW_1.def", "x" : 502, "y" : 223, "border" : "TONZOMB1.bmp", "area" : "TZNZOMB1.bmp" },
|
||||
{ "id" : 32, "animation" : "TBNCDW_2.def", "x" : 0, "y" : 187, "z" : 2, "border" : "TONWIGH1.bmp", "area" : "TZNWIGH1.bmp" },
|
||||
{ "id" : 33, "animation" : "TBNCDW_3.def", "x" : 607, "y" : 212, "z" : 2, "border" : "TONVAM1.bmp", "area" : "TZNVAM1.bmp" },
|
||||
{ "id" : 34, "animation" : "TBNCDW_4.def", "x" : 206, "y" : 207, "z" : 3, "border" : "TONLICH1.bmp", "area" : "TZNLICH1.bmp" },
|
||||
{ "id" : 35, "animation" : "TBNCDW_5.def", "x" : 0, "y" : 31, "border" : "TONBKN1.bmp", "area" : "TZNBKN1.bmp" },
|
||||
{ "id" : 36, "animation" : "TBNCDW_6.def", "x" : 663, "y" : 25, "border" : "TONBON1.bmp", "area" : "TZNBON1.bmp" },
|
||||
{ "id" : 37, "animation" : "TBNCUP_0.def", "x" : 64, "y" : 222, "z" : 4, "border" : "TONSKEL2.bmp", "area" : "TZNSKEL2.bmp" },
|
||||
{ "id" : 38, "animation" : "TBNCUP_1.def", "x" : 498, "y" : 224, "border" : "TONZOMB2.bmp", "area" : "TZNZOMB2.bmp" },
|
||||
{ "id" : 39, "animation" : "TBNCUP_2.def", "x" : 0, "y" : 179, "z" : 2, "border" : "TONWIGH2.bmp", "area" : "TZNWIGH2.bmp" },
|
||||
{ "id" : 40, "animation" : "TBNCUP_3.def", "x" : 615, "y" : 193, "z" : 2, "border" : "TONVAM2.bmp", "area" : "TZNVAM2.bmp" },
|
||||
{ "id" : 41, "animation" : "TBNCUP_4.def", "x" : 222, "y" : 171, "z" : 3, "border" : "TONLICH2.bmp", "area" : "TZNLICH2.bmp" },
|
||||
{ "id" : 42, "animation" : "TBNCUP_5.def", "x" : 0, "y" : 30, "border" : "TONBKN2.bmp", "area" : "TZNBKN2.bmp" },
|
||||
{ "id" : 43, "animation" : "TBNCUP_6.def", "x" : 662, "y" : 23, "border" : "TONBON2.bmp", "area" : "TZNBON2.bmp" }
|
||||
],
|
||||
{
|
||||
"extraAnimation": { "animation" : "TBNCEXT2.def", "x" : 25, "y" : 279 },
|
||||
"mageGuild1": { "id" : 0, "animation" : "TBNCMAGE.def", "x" : 341, "y" : 116, "z" : -1, "border" : "TONMAG1.bmp", "area" : "TZNMAG1.bmp" },
|
||||
"mageGuild2": { "id" : 1, "animation" : "TBNCMAG2.def", "x" : 341, "y" : 97, "z" : -1, "border" : "TONMAG2.bmp", "area" : "TZNMAG2.bmp" },
|
||||
"mageGuild3": { "id" : 2, "animation" : "TBNCMAG3.def", "x" : 341, "y" : 78, "z" : -1, "border" : "TONMAG3.bmp", "area" : "TZNMAG3.bmp" },
|
||||
"mageGuild4": { "id" : 3, "animation" : "TBNCMAG4.def", "x" : 340, "y" : 62, "z" : -1, "border" : "TONMAG4.bmp", "area" : "TZNMAG4.bmp" },
|
||||
"mageGuild5": { "id" : 4, "animation" : "TBNCMAG5.def", "x" : 343, "y" : 35, "z" : -1, "border" : "TONMAG5.bmp", "area" : "TZNMAG5.bmp" },
|
||||
"tavern": { "id" : 5, "animation" : "TBNCTVRN.def", "x" : 508, "y" : 189, "border" : "TONTAV.bmp", "area" : "TZNTAV.bmp" },
|
||||
"shipyard": { "id" : 6, "animation" : "TBNCDOCK.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPBA.bmp", "area" : "TZNSHPBA.bmp" },
|
||||
"fort": { "id" : 7, "animation" : "TBNCCSTL.def", "x" : 138, "y" : 66, "border" : "TONCAS1.bmp", "area" : "TZNCAS1.bmp" },
|
||||
"citadel": { "id" : 8, "animation" : "TBNCCAS2.def", "x" : 139, "y" : 66, "border" : "TONCAS2.bmp", "area" : "TZNCAS2.bmp" },
|
||||
"castle": { "id" : 9, "animation" : "TBNCCAS3.def", "x" : 34, "y" : 18, "border" : "TONCAS3.bmp", "area" : "TZNCAS3.bmp" },
|
||||
"villageHall": { "id" : 10, "animation" : "TBNCHALL.def", "x" : 468, "y" : 76, "z" : -1, "border" : "TONHAL1.bmp", "area" : "TZNHAL1.bmp" },
|
||||
"townHall": { "id" : 11, "animation" : "TBNCHAL2.def", "x" : 482, "y" : 56, "z" : -1, "border" : "TONHAL2.bmp", "area" : "TZNHAL2.bmp" },
|
||||
"cityHall": { "id" : 12, "animation" : "TBNCHAL3.def", "x" : 478, "y" : 26, "z" : -1, "border" : "TONHAL3.bmp", "area" : "TZNHAL3.bmp" },
|
||||
"capitol": { "id" : 13, "animation" : "TBNCHAL4.def", "x" : 481, "y" : 26, "z" : -1, "border" : "TONHAL4.bmp", "area" : "TZNHAL4.bmp" },
|
||||
"marketplace": { "id" : 14, "animation" : "TBNCMARK.def", "x" : 347, "y" : 215, "z" : 2, "border" : "TONMRK1.bmp", "area" : "TZNMRK1.bmp" },
|
||||
"resourceSilo": { "id" : 15, "animation" : "TBNCSILO.def", "x" : 276, "y" : 185, "z" : 1, "border" : "TONMRK2.bmp", "area" : "TZNMRK2.bmp" },
|
||||
"blacksmith": { "id" : 16, "animation" : "TBNCBLAK.def", "x" : 382, "y" : 252, "z" : 4, "border" : "TONSMITA.bmp", "area" : "TZNSMITA.bmp" },
|
||||
"special1": { "id" : 17, "animation" : "TBNCSPEC.def", "x" : 18, "y" : 0, "z" : -1, "border" : "TONSHRDA.bmp", "area" : "TZNSHRDA.bmp" },
|
||||
"horde1": { "id" : 18, "animation" : "TBNCHRD1.def", "x" : 80, "y" : 222, "z" : 4, "border" : "TONSKE1H.bmp", "area" : "TZNSKE1H.bmp", "hidden" : true },
|
||||
"horde1Upgr": { "id" : 19, "animation" : "TBNCHRD2.def", "x" : 64, "y" : 222, "z" : 4, "border" : "TONSKE2H.bmp", "area" : "TZNSKE2H.bmp", "hidden" : true, "builds" : 18 },
|
||||
"ship": { "id" : 20, "animation" : "TBNCBOAT.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPNA.bmp", "area" : "TZNSHPNA.bmp", "hidden" : true },
|
||||
"special2": { "id" : 21, "animation" : "TBNCEXT0.def", "x" : 307, "y" : 61, "z" : -2, "border" : "TONNECRA.bmp", "area" : "TZNNECRA.bmp" },
|
||||
"special3": { "id" : 22, "animation" : "TBNCEXT1.def", "x" : 247, "y" : 275, "z" : 4, "border" : "TONSKELT.bmp", "area" : "TZNSKELT.bmp" },
|
||||
"grail": { "id" : 26, "animation" : "TBNCHOLY.def", "x" : 410, "y" : 88, "border" : "TONHOLYA.bmp", "area" : "TZNHOLYA.bmp" },
|
||||
"extraTownHall": { "id" : 27, "animation" : "TBNCEXT3.def", "x" : 0, "y" : 241 },
|
||||
"extraCityHall": { "id" : 28, "animation" : "TBNCEXT4.def", "x" : 321, "y" : 255 },
|
||||
"extraCapitol": { "id" : 29, "animation" : "TBNCEXT5.def", "x" : 475, "y" : 257 },
|
||||
"dwellingLvl1": { "id" : 30, "animation" : "TBNCDW_0.def", "x" : 80, "y" : 222, "z" : 4, "border" : "TONSKEL1.bmp", "area" : "TZNSKEL1.bmp" },
|
||||
"dwellingLvl2": { "id" : 31, "animation" : "TBNCDW_1.def", "x" : 502, "y" : 223, "border" : "TONZOMB1.bmp", "area" : "TZNZOMB1.bmp" },
|
||||
"dwellingLvl3": { "id" : 32, "animation" : "TBNCDW_2.def", "x" : 0, "y" : 187, "z" : 2, "border" : "TONWIGH1.bmp", "area" : "TZNWIGH1.bmp" },
|
||||
"dwellingLvl4": { "id" : 33, "animation" : "TBNCDW_3.def", "x" : 607, "y" : 212, "z" : 2, "border" : "TONVAM1.bmp", "area" : "TZNVAM1.bmp" },
|
||||
"dwellingLvl5": { "id" : 34, "animation" : "TBNCDW_4.def", "x" : 206, "y" : 207, "z" : 3, "border" : "TONLICH1.bmp", "area" : "TZNLICH1.bmp" },
|
||||
"dwellingLvl6": { "id" : 35, "animation" : "TBNCDW_5.def", "x" : 0, "y" : 31, "border" : "TONBKN1.bmp", "area" : "TZNBKN1.bmp" },
|
||||
"dwellingLvl7": { "id" : 36, "animation" : "TBNCDW_6.def", "x" : 663, "y" : 25, "border" : "TONBON1.bmp", "area" : "TZNBON1.bmp" },
|
||||
"dwellingUpLvl1": { "id" : 37, "animation" : "TBNCUP_0.def", "x" : 64, "y" : 222, "z" : 4, "border" : "TONSKEL2.bmp", "area" : "TZNSKEL2.bmp" },
|
||||
"dwellingUpLvl2": { "id" : 38, "animation" : "TBNCUP_1.def", "x" : 498, "y" : 224, "border" : "TONZOMB2.bmp", "area" : "TZNZOMB2.bmp" },
|
||||
"dwellingUpLvl3": { "id" : 39, "animation" : "TBNCUP_2.def", "x" : 0, "y" : 179, "z" : 2, "border" : "TONWIGH2.bmp", "area" : "TZNWIGH2.bmp" },
|
||||
"dwellingUpLvl4": { "id" : 40, "animation" : "TBNCUP_3.def", "x" : 615, "y" : 193, "z" : 2, "border" : "TONVAM2.bmp", "area" : "TZNVAM2.bmp" },
|
||||
"dwellingUpLvl5": { "id" : 41, "animation" : "TBNCUP_4.def", "x" : 222, "y" : 171, "z" : 3, "border" : "TONLICH2.bmp", "area" : "TZNLICH2.bmp" },
|
||||
"dwellingUpLvl6": { "id" : 42, "animation" : "TBNCUP_5.def", "x" : 0, "y" : 30, "border" : "TONBKN2.bmp", "area" : "TZNBKN2.bmp" },
|
||||
"dwellingUpLvl7": { "id" : 43, "animation" : "TBNCUP_6.def", "x" : 662, "y" : 23, "border" : "TONBON2.bmp", "area" : "TZNBON2.bmp" }
|
||||
},
|
||||
"icons" :
|
||||
{
|
||||
"village" : {"normal" : 26, "built" : 27 },
|
||||
@@ -153,49 +153,53 @@
|
||||
"moatDamage" : 70,
|
||||
|
||||
"buildings" :
|
||||
[
|
||||
{ "id" : 0 },
|
||||
{ "id" : 1, "upgrades" : 0 },
|
||||
{ "id" : 2, "upgrades" : 1 },
|
||||
{ "id" : 3, "upgrades" : 2 },
|
||||
{ "id" : 4, "upgrades" : 3 },
|
||||
{ "id" : 5 },
|
||||
{ "id" : 6 },
|
||||
{ "id" : 7 },
|
||||
{ "id" : 8, "upgrades" : 7 },
|
||||
{ "id" : 9, "upgrades" : 8 },
|
||||
{ "id" : 10, "mode" : "auto" },
|
||||
{ "id" : 11, "upgrades" : 10, "requires" : [ 5 ] },
|
||||
{ "id" : 12, "upgrades" : 11, "requires" : [ 0, 14, 16 ] },
|
||||
{ "id" : 13, "upgrades" : 12, "requires" : [ 9 ] },
|
||||
{ "id" : 14 },
|
||||
{ "id" : 15, "requires" : [ 14 ] },
|
||||
{ "id" : 16 },
|
||||
{ "id" : 17, "requires" : [ 7 ] },
|
||||
{ "id" : 18, "upgrades" : 30, "requires" : [ 22 ] },
|
||||
{ "id" : 19, "upgrades" : 37, "requires" : [ 18 ], "mode" : "auto" },
|
||||
{ "id" : 20, "upgrades" : 6 },
|
||||
{ "id" : 21, "requires" : [ 0 ] },
|
||||
{ "id" : 22, "requires" : [ 30 ] },
|
||||
{ "id" : 26, "mode" : "grail"},
|
||||
{ "id" : 27, "requires" : [ 11 ], "mode" : "auto" },
|
||||
{ "id" : 28, "requires" : [ 12 ], "mode" : "auto" },
|
||||
{ "id" : 29, "requires" : [ 13 ], "mode" : "auto" },
|
||||
{ "id" : 30, "requires" : [ 7 ] },
|
||||
{ "id" : 31, "requires" : [ 30 ] },
|
||||
{ "id" : 32, "requires" : [ 30 ] },
|
||||
{ "id" : 33, "requires" : [ 31 ] },
|
||||
{ "id" : 34, "requires" : [ 0, 31 ] },
|
||||
{ "id" : 35, "requires" : [ 33, 34 ] },
|
||||
{ "id" : 36, "requires" : [ 35 ] },
|
||||
{ "id" : 37, "upgrades" : 30 },
|
||||
{ "id" : 38, "upgrades" : 31 },
|
||||
{ "id" : 39, "upgrades" : 32 },
|
||||
{ "id" : 40, "upgrades" : 33, "requires" : [ 21 ] },
|
||||
{ "id" : 41, "upgrades" : 34 },
|
||||
{ "id" : 42, "upgrades" : 35 },
|
||||
{ "id" : 43, "upgrades" : 36 }
|
||||
],
|
||||
{
|
||||
"mageGuild1": { "id" : 0 },
|
||||
"mageGuild2": { "id" : 1, "upgrades" : 0 },
|
||||
"mageGuild3": { "id" : 2, "upgrades" : 1 },
|
||||
"mageGuild4": { "id" : 3, "upgrades" : 2 },
|
||||
"mageGuild5": { "id" : 4, "upgrades" : 3 },
|
||||
"tavern": { "id" : 5 },
|
||||
"shipyard": { "id" : 6 },
|
||||
"fort": { "id" : 7 },
|
||||
"citadel": { "id" : 8, "upgrades" : 7 },
|
||||
"castle": { "id" : 9, "upgrades" : 8 },
|
||||
"villageHall": { "id" : 10, "mode" : "auto" },
|
||||
"townHall": { "id" : 11, "upgrades" : 10, "requires" : [ 5 ] },
|
||||
"cityHall": { "id" : 12, "upgrades" : 11, "requires" : [ 0, 14, 16 ] },
|
||||
"capitol": { "id" : 13, "upgrades" : 12, "requires" : [ 9 ] },
|
||||
"marketplace": { "id" : 14 },
|
||||
"resourceSilo": { "id" : 15, "requires" : [ 14 ] },
|
||||
"blacksmith": { "id" : 16 },
|
||||
"special1": { "id" : 17, "requires" : [ 7 ] },
|
||||
"horde1": { "id" : 18, "upgrades" : 30, "requires" : [ 22 ] },
|
||||
"horde1Upgr": { "id" : 19, "upgrades" : 37, "requires" : [ 18 ], "mode" : "auto" },
|
||||
"ship": { "id" : 20, "upgrades" : 6 },
|
||||
"special2": { "id" : 21, "requires" : [ 0 ] },
|
||||
"special3": { "id" : 22, "requires" : [ 30 ] },
|
||||
"grail": { "id" : 26, "mode" : "grail"},
|
||||
"extraTownHall": { "id" : 27, "requires" : [ 11 ], "mode" : "auto" },
|
||||
"extraCityHall": { "id" : 28, "requires" : [ 12 ], "mode" : "auto" },
|
||||
"extraCapitol": { "id" : 29, "requires" : [ 13 ], "mode" : "auto" },
|
||||
"dwellingLvl1": { "id" : 30, "requires" : [ 7 ] },
|
||||
"dwellingLvl2": { "id" : 31, "requires" : [ 30 ] },
|
||||
"dwellingLvl3": { "id" : 32, "requires" : [ 30 ] },
|
||||
"dwellingLvl4": { "id" : 33, "requires" : [ 31 ] },
|
||||
"dwellingLvl5": { "id" : 34, "requires" : [ 0, 31 ] },
|
||||
"dwellingLvl6": { "id" : 35, "requires" : [ 33, 34 ] },
|
||||
"dwellingLvl7": { "id" : 36, "requires" : [ 35 ] },
|
||||
"dwellingUpLvl1": { "id" : 37, "upgrades" : 30 },
|
||||
"dwellingUpLvl2": { "id" : 38, "upgrades" : 31 },
|
||||
"dwellingUpLvl3": { "id" : 39, "upgrades" : 32 },
|
||||
"dwellingUpLvl4": { "id" : 40, "upgrades" : 33, "requires" : [ 21 ] },
|
||||
"dwellingUpLvl5": { "id" : 41, "upgrades" : 34 },
|
||||
"dwellingUpLvl6": { "id" : 42, "upgrades" : 35 },
|
||||
"dwellingUpLvl7": { "id" : 43, "upgrades" : 36 },
|
||||
|
||||
"horde2" : null,
|
||||
"horde2Upgr" : null,
|
||||
"special4" : null
|
||||
},
|
||||
|
||||
"siege" :
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user