From 6fe87007618e54d0a26efde6b3315a7e8752ad29 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 26 Jan 2025 14:38:17 +0000 Subject: [PATCH 1/2] If mod validation is set to full, VCMI will now detect overlapping buildings with same z-index --- client/renderSDL/RenderHandler.cpp | 69 +++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/client/renderSDL/RenderHandler.cpp b/client/renderSDL/RenderHandler.cpp index 7d7f2e8a9..08dbf37da 100644 --- a/client/renderSDL/RenderHandler.cpp +++ b/client/renderSDL/RenderHandler.cpp @@ -22,11 +22,16 @@ #include "../render/Colors.h" #include "../render/ColorFilter.h" #include "../render/IScreenHandler.h" -#include "../../lib/json/JsonUtils.h" + +#include "../../lib/CConfigHandler.h" #include "../../lib/CThreadHelper.h" -#include "../../lib/filesystem/Filesystem.h" #include "../../lib/VCMIDirs.h" #include "../../lib/constants/StringConstants.h" +#include "../../lib/entities/building/CBuilding.h" +#include "../../lib/entities/faction/CTown.h" +#include "../../lib/entities/faction/CTownHandler.h" +#include "../../lib/filesystem/Filesystem.h" +#include "../../lib/json/JsonUtils.h" #include #include @@ -351,6 +356,58 @@ void RenderHandler::addImageListEntries(const EntityService * service) }); } +static void detectOverlappingBuildings(RenderHandler * renderHandler, const Faction * factionBase) +{ + if (!factionBase->hasTown()) + return; + + auto faction = dynamic_cast(factionBase); + + for (const auto & left : faction->town->clientInfo.structures) + { + for (const auto & right : faction->town->clientInfo.structures) + { + if (left->identifier <= right->identifier) + continue; // only a<->b comparison is needed, not a<->a or b<->a + + if (left->building && right->building && left->building->getBase() == right->building->getBase()) + continue; // upgrades of the same buildings are expected to overlap + + if (left->pos.z != right->pos.z) + continue; // buildings already have different z-index and have well-defined overlap logic + + auto leftImage = renderHandler->loadImage(left->defName, 0, 0, EImageBlitMode::SIMPLE); + auto rightImage = renderHandler->loadImage(right->defName, 0, 0, EImageBlitMode::SIMPLE); + + Rect leftRect( left->pos.x, left->pos.y, leftImage->width(), leftImage->height()); + Rect rightRect( right->pos.x, right->pos.y, rightImage->width(), rightImage->height()); + + Rect intersection = leftRect.intersect(rightRect); + + Point intersectionPosition; + bool intersectionFound = false; + + for (int y = 0; y < intersection.h && !intersectionFound; ++y) + { + for (int x = 0; x < intersection.w && !intersectionFound; ++x) + { + Point leftPoint = Point(x,y) - leftRect.topLeft() + intersection.topLeft(); + Point rightPoint = Point(x,y) - rightRect.topLeft() + intersection.topLeft(); + + if (!leftImage->isTransparent(leftPoint) && !rightImage->isTransparent(rightPoint)) + { + intersectionFound = true; + intersectionPosition = intersection.topLeft() + Point(x,y); + } + } + } + + if (intersectionFound) + logMod->warn("Town %s: Detected overlapping buildings '%s' and '%s' at (%d, %d) with same z-index!", faction->getJsonKey(), left->identifier, right->identifier, intersectionPosition.x, intersectionPosition.y); + } + } +}; + void RenderHandler::onLibraryLoadingFinished(const Services * services) { addImageListEntries(services->creatures()); @@ -359,6 +416,14 @@ void RenderHandler::onLibraryLoadingFinished(const Services * services) addImageListEntries(services->factions()); addImageListEntries(services->spells()); addImageListEntries(services->skills()); + + if (settings["mods"]["validation"].String() == "full") + { + services->factions()->forEach([this](const Faction * factionBase, bool & stop) + { + detectOverlappingBuildings(this, factionBase); + }); + } } std::shared_ptr RenderHandler::loadFont(EFonts font) From e0e2e70b2d9c5b315ef3ba2129aede64c0f6cbc7 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 26 Jan 2025 14:38:43 +0000 Subject: [PATCH 2/2] Fix multiple overlapping buildings in h3 towns --- config/factions/castle.json | 36 +++++++------- config/factions/conflux.json | 84 ++++++++++++++++----------------- config/factions/fortress.json | 28 +++++------ config/factions/inferno.json | 14 +++--- config/factions/necropolis.json | 34 ++++++------- config/factions/rampart.json | 12 ++--- config/factions/stronghold.json | 8 ++-- config/factions/tower.json | 26 +++++----- 8 files changed, 121 insertions(+), 121 deletions(-) diff --git a/config/factions/castle.json b/config/factions/castle.json index 2fa1f2d8d..801ddc923 100644 --- a/config/factions/castle.json +++ b/config/factions/castle.json @@ -84,36 +84,36 @@ "mageGuild2": { "animation" : "TBCSMAG2.def", "x" : 706, "y" : 135, "z" : 1, "border" : "TOCSMAG2.bmp", "area" : "TZCSMAG2.bmp" }, "mageGuild3": { "animation" : "TBCSMAG3.def", "x" : 704, "y" : 107, "z" : 1, "border" : "TOCSM301.bmp", "area" : "TZCSM301.bmp" }, "mageGuild4": { "animation" : "TBCSMAG4.def", "x" : 704, "y" : 76, "z" : 1, "border" : "TOCSM401.bmp", "area" : "TZCSM401.bmp" }, - "tavern": { "animation" : "TBCSTVRN.def", "x" : 0, "y" : 230, "z" : 1, "border" : "TOCSTAV1.bmp", "area" : "TZCSTAV1.bmp" }, + "tavern": { "animation" : "TBCSTVRN.def", "x" : 0, "y" : 230, "z" : 2, "border" : "TOCSTAV1.bmp", "area" : "TZCSTAV1.bmp" }, "shipyard": { "animation" : "TBCSDOCK.def", "x" : 478, "y" : 134, "z" : -3, "border" : "TOCSDKMS.bmp", "area" : "TZCSDKMS.bmp" }, - "fort": { "animation" : "TBCSCSTL.def", "x" : 595, "y" : 66, "z" : -4, "border" : "TOCSCAS1.bmp", "area" : "TZCSCAS1.bmp" }, - "citadel": { "animation" : "TBCSCAS2.def", "x" : 478, "y" : 66, "z" : -4, "border" : "TOCSCAS2.bmp", "area" : "TZCSCAS2.bmp" }, - "castle": { "animation" : "TBCSCAS3.def", "x" : 478, "y" : 37, "z" : -4, "border" : "TOCSCAS3.bmp", "area" : "TZCSCAS3.bmp" }, - "villageHall": { "animation" : "TBCSHALL.def", "x" : 0, "y" : 209, "border" : "TOCSH101.bmp", "area" : "TZCSH101.bmp" }, - "townHall": { "animation" : "TBCSHAL2.def", "x" : 0, "y" : 176, "border" : "TOCSH201.bmp", "area" : "TZCSH201.bmp" }, - "cityHall": { "animation" : "TBCSHAL3.def", "x" : 0, "y" : 164, "border" : "TOCSH301.bmp", "area" : "TZCSH301.bmp" }, - "capitol": { "animation" : "TBCSHAL4.def", "x" : 0, "y" : 154, "border" : "TOCSH401.bmp", "area" : "TZCSH401.bmp" }, - "marketplace": { "animation" : "TBCSMARK.def", "x" : 413, "y" : 264, "border" : "TOCSMRK1.bmp", "area" : "TZCSMRK1.bmp" }, - "resourceSilo": { "animation" : "TBCSSILO.def", "x" : 488, "y" : 228, "border" : "TOCSMRK2.bmp", "area" : "TZCSMRK2.bmp" }, - "blacksmith": { "animation" : "TBCSBLAK.def", "x" : 213, "y" : 251, "border" : "TOCSBLAK.bmp", "area" : "TZCSBLAK.bmp" }, - "special1": { "animation" : "TBCSSPEC.def", "x" : 533, "y" : 71, "z" : -3, "border" : "TOCSLT01.bmp", "area" : "TZCSLT01.bmp" }, + "fort": { "animation" : "TBCSCSTL.def", "x" : 595, "y" : 66, "z" : -5, "border" : "TOCSCAS1.bmp", "area" : "TZCSCAS1.bmp" }, + "citadel": { "animation" : "TBCSCAS2.def", "x" : 478, "y" : 66, "z" : -5, "border" : "TOCSCAS2.bmp", "area" : "TZCSCAS2.bmp" }, + "castle": { "animation" : "TBCSCAS3.def", "x" : 478, "y" : 37, "z" : -5, "border" : "TOCSCAS3.bmp", "area" : "TZCSCAS3.bmp" }, + "villageHall": { "animation" : "TBCSHALL.def", "x" : 0, "y" : 209, "z" : 1, "border" : "TOCSH101.bmp", "area" : "TZCSH101.bmp" }, + "townHall": { "animation" : "TBCSHAL2.def", "x" : 0, "y" : 176, "z" : 1, "border" : "TOCSH201.bmp", "area" : "TZCSH201.bmp" }, + "cityHall": { "animation" : "TBCSHAL3.def", "x" : 0, "y" : 164, "z" : 1, "border" : "TOCSH301.bmp", "area" : "TZCSH301.bmp" }, + "capitol": { "animation" : "TBCSHAL4.def", "x" : 0, "y" : 154, "z" : 1, "border" : "TOCSH401.bmp", "area" : "TZCSH401.bmp" }, + "marketplace": { "animation" : "TBCSMARK.def", "x" : 413, "y" : 264, "z" : 0, "border" : "TOCSMRK1.bmp", "area" : "TZCSMRK1.bmp" }, + "resourceSilo": { "animation" : "TBCSSILO.def", "x" : 488, "y" : 228, "z" : 1, "border" : "TOCSMRK2.bmp", "area" : "TZCSMRK2.bmp" }, + "blacksmith": { "animation" : "TBCSBLAK.def", "x" : 213, "y" : 251, "z" : 0, "border" : "TOCSBLAK.bmp", "area" : "TZCSBLAK.bmp" }, + "special1": { "animation" : "TBCSSPEC.def", "x" : 533, "y" : 71, "z" : -4, "border" : "TOCSLT01.bmp", "area" : "TZCSLT01.bmp" }, "horde1": { "animation" : "TBCSHRD1.def", "x" : 76, "y" : 53, "z" : -1, "border" : "TOCSGR1H.bmp", "area" : "TZCSGR1H.bmp", "hidden" : true }, "horde1Upgr": { "animation" : "TBCSHRD2.def", "x" : 76, "y" : 35, "z" : -1, "border" : "TOCSGR2H.bmp", "area" : "TZCSGR2H.bmp", "hidden" : true, "builds" : "horde1" }, "ship": { "animation" : "TBCSBOAT.def", "x" : 478, "y" : 134, "z" : -3, "border" : "TOCSDKMN.bmp", "area" : "TZCSDKMN.bmp", "hidden" : true }, "special2": { "animation" : "TBCSEXT0.def", "x" : 384, "y" : 193, "z" : -2, "border" : "TOCSCAVM.bmp", "area" : "TZCSCAVM.bmp" }, - "special3": { "animation" : "TBCSEXT1.def", "x" : 0, "y" : 198, "z" : 1, "border" : "TOCSTAV2.bmp", "area" : "TZCSTAV2.bmp" }, - "grail": { "animation" : "TBCSHOLY.def", "x" : 456, "y" : 109, "z" : -5, "border" : "TOCSHOLY.bmp", "area" : "TZCSHOLY.bmp" }, + "special3": { "animation" : "TBCSEXT1.def", "x" : 0, "y" : 198, "z" : 2, "border" : "TOCSTAV2.bmp", "area" : "TZCSTAV2.bmp" }, + "grail": { "animation" : "TBCSHOLY.def", "x" : 456, "y" : 109, "z" : -6, "border" : "TOCSHOLY.bmp", "area" : "TZCSHOLY.bmp" }, "dwellingLvl1": { "animation" : "TBCSDW_0.def", "x" : 304, "y" : 92, "z" : -1, "border" : "TOCSPIK1.bmp", "area" : "TZCSPIK1.bmp" }, - "dwellingLvl2": { "animation" : "TBCSDW_1.def", "x" : 360, "y" : 130, "border" : "TOCSCRS1.bmp", "area" : "TZCSCRS1.bmp" }, + "dwellingLvl2": { "animation" : "TBCSDW_1.def", "x" : 360, "y" : 130, "z" : 0, "border" : "TOCSCRS1.bmp", "area" : "TZCSCRS1.bmp" }, "dwellingLvl3": { "animation" : "TBCSDW_2.def", "x" : 76, "y" : 57, "z" : -1, "border" : "TOCSGR1N.bmp", "area" : "TZCSGR1N.bmp" }, - "dwellingLvl4": { "animation" : "TBCSDW_3.def", "x" : 176, "y" : 101, "border" : "TOCSSWD1.bmp", "area" : "TZCSSWD1.bmp" }, + "dwellingLvl4": { "animation" : "TBCSDW_3.def", "x" : 176, "y" : 101, "z" : 0, "border" : "TOCSSWD1.bmp", "area" : "TZCSSWD1.bmp" }, "dwellingLvl5": { "animation" : "TBCSDW_4.def", "x" : 563, "y" : 211, "z" : 1, "border" : "TOCSMON1.bmp", "area" : "TZCSMON1.bmp" }, "dwellingLvl6": { "animation" : "TBCSDW_5.def", "x" : 174, "y" : 190, "z" : -1, "border" : "TOCSC101.bmp", "area" : "TZCSCAV1.bmp" }, "dwellingLvl7": { "animation" : "TBCSDW_6.def", "x" : 303, "y" : 0, "z" : -2, "border" : "TOCSANG1.bmp", "area" : "TZCSANG1.bmp" }, "dwellingUpLvl1": { "animation" : "TBCSUP_0.def", "x" : 304, "y" : 65, "z" : -1, "border" : "TOCSPIK2.bmp", "area" : "TZCSPIK2.bmp" }, - "dwellingUpLvl2": { "animation" : "TBCSUP_1.def", "x" : 360, "y" : 115, "border" : "TOCSCRS2.bmp", "area" : "TZCSCRS2.bmp" }, + "dwellingUpLvl2": { "animation" : "TBCSUP_1.def", "x" : 360, "y" : 115, "z" : 0, "border" : "TOCSCRS2.bmp", "area" : "TZCSCRS2.bmp" }, "dwellingUpLvl3": { "animation" : "TBCSUP_2.def", "x" : 76, "y" : 35, "z" : -1, "border" : "TOCSGR2N.bmp", "area" : "TZCSGR2N.bmp" }, - "dwellingUpLvl4": { "animation" : "TBCSUP_3.def", "x" : 176, "y" : 85, "border" : "TOCSSWD2.bmp", "area" : "TZCSSWD2.bmp" }, + "dwellingUpLvl4": { "animation" : "TBCSUP_3.def", "x" : 176, "y" : 85, "z" : 0, "border" : "TOCSSWD2.bmp", "area" : "TZCSSWD2.bmp" }, "dwellingUpLvl5": { "animation" : "TBCSUP_4.def", "x" : 563, "y" : 173, "z" : 1, "border" : "TOCSMON2.bmp", "area" : "TZCSMON2.bmp" }, "dwellingUpLvl6": { "animation" : "TBCSUP_5.def", "x" : 160, "y" : 190, "z" : -1, "border" : "TOCSCAV2.bmp", "area" : "TZCSCAV2.bmp" }, "dwellingUpLvl7": { "animation" : "TBCSUP_6.def", "x" : 303, "y" : 0, "z" : -2, "border" : "TOCSANG2.bmp", "area" : "TZCSANG2.bmp" } diff --git a/config/factions/conflux.json b/config/factions/conflux.json index a611b32c3..6de579017 100644 --- a/config/factions/conflux.json +++ b/config/factions/conflux.json @@ -79,48 +79,48 @@ }, "structures" : { - "extraAnimation2":{ "animation" : "TBELEXT5.def", "x" : 682, "y" : 183, "z" : -1 }, - "extraAnimation": { "animation" : "TBELEXT1.def", "x" : 23, "y" : 218 }, - "mageGuild1": { "animation" : "TBELMAGE.def", "x" : 206, "y" : 58, "z" : 4, "border" : "TOELMAGE.bmp", "area" : "TZELMAGE.bmp" }, - "mageGuild2": { "animation" : "TBELMAG2.def", "x" : 206, "y" : 58, "z" : 4, "border" : "TOELMAG2.bmp", "area" : "TZELMAG2.bmp" }, - "mageGuild3": { "animation" : "TBELMAG3.def", "x" : 206, "y" : 58, "z" : 4, "border" : "TOELMAG3.bmp", "area" : "TZELMAG3.bmp" }, - "mageGuild4": { "animation" : "TBELMAG4.def", "x" : 206, "y" : 58, "z" : 4, "border" : "TOELMAG4.bmp", "area" : "TZELMAG4.bmp" }, - "mageGuild5": { "animation" : "TBELMAG5.def", "x" : 206, "y" : 58, "z" : 4, "border" : "TOELMAG5.bmp", "area" : "TZELMAG5.bmp" }, - "tavern": { "animation" : "TBELTVRN.def", "x" : 553, "y" : 203, "z" : 2, "border" : "TOELTVRN.bmp", "area" : "TZELTVRN.bmp" }, - "shipyard": { "animation" : "TBELDOCK.def", "x" : 239, "y" : 215, "z" : 2, "border" : "TOELDOCK.bmp", "area" : "TZELDOCK.bmp" }, - "fort": { "animation" : "TBELCSTL.def", "x" : 349, "y" : 101, "z" : -1, "border" : "TOELCSTL.bmp", "area" : "TZELCSTL.bmp" }, - "citadel": { "animation" : "TBELCAS2.def", "x" : 349, "y" : 101, "z" : -1, "border" : "TOELCAS2.bmp", "area" : "TZELCAS2.bmp" }, - "castle": { "animation" : "TBELCAS3.def", "x" : 349, "y" : 101, "z" : -1, "border" : "TOELCAS3.bmp", "area" : "TZELCAS3.bmp" }, - "villageHall": { "animation" : "TBELHALL.def", "x" : -1, "y" : 164, "z" : 5, "border" : "TOELHALL.bmp", "area" : "TZELHALL.bmp" }, - "townHall": { "animation" : "TBELHAL2.def", "x" : 0, "y" : 165, "z" : 5, "border" : "TOELHAL2.bmp", "area" : "TZELHAL2.bmp" }, - "cityHall": { "animation" : "TBELHAL3.def", "x" : 0, "y" : 165, "z" : 5, "border" : "TOELHAL3.bmp", "area" : "TZELHAL3.bmp" }, - "capitol": { "animation" : "TBELHAL4.def", "x" : 0, "y" : 164, "z" : 5, "border" : "TOELHAL4.bmp", "area" : "TZELHAL4.bmp" }, - "marketplace": { "animation" : "TBELMARK.def", "x" : 347, "y" : 216, "z" : 4, "border" : "TOELMARK.bmp", "area" : "TZELMARK.bmp" }, - "resourceSilo": { "animation" : "TBELSILO.def", "x" : 372, "y" : 171, "z" : 2, "border" : "TOELSILO.bmp", "area" : "TZELSILO.bmp" }, - "blacksmith": { "animation" : "TBELBLAK.def", "x" : 449, "y" : 151, "z" : 1, "border" : "TOELBLAK.bmp", "area" : "TZELBLAK.bmp" }, - "special1": { "animation" : "TBELSPEC.def", "x" : 284, "y" : 246, "z" : 4, "border" : "TOELSPEC.bmp", "area" : "TZELSPEC.bmp" }, - "horde1": { "animation" : "TBELHRD1.def", "x" : 689, "y" : 250, "border" : "TOELHRD1.bmp", "area" : "TZELHRD1.bmp", "hidden" : true }, - "horde1Upgr": { "animation" : "TBELHRD2.def", "x" : 689, "y" : 250, "border" : "TOELHRD2.bmp", "area" : "TZELHRD2.bmp", "hidden" : true, "builds" : "horde1" }, - "ship": { "animation" : "TBELBOAT.def", "x" : 239, "y" : 215, "z" : 2, "border" : "TOELBOAT.bmp", "area" : "TZELBOAT.bmp", "hidden" : true }, - "special2": { "animation" : "TBELEXT6.def", "x" : 104, "y" : 170, "z" : 3, "border" : "TOELEXT6.bmp", "area" : "TZELEXT6.bmp" }, - "grail": { "animation" : "TBELHOLY.def", "x" : 307, "y" : 2, "border" : "TOELHOLY.bmp", "area" : "TZELHOLY.bmp" }, - "extraTownHall": { "animation" : "TBELEXT2.def", "x" : 232, "y" : 205, "z" : -1 }, - "extraCityHall": { "animation" : "TBELEXT3.def", "x" : 516, "y" : 223 }, - "extraCapitol": { "animation" : "TBELEXT4.def", "x" : 0, "y" : 252, "z" : 6 }, - "dwellingLvl1": { "animation" : "TBELDW_0.def", "x" : 689, "y" : 250, "border" : "TOELDW_0.bmp", "area" : "TZELDW_0.bmp" }, - "dwellingLvl2": { "animation" : "TBELDW_1.def", "x" : 630, "y" : 50, "z" : -1, "border" : "TOELDW_1.bmp", "area" : "TZELDW_1.bmp" }, - "dwellingLvl3": { "animation" : "TBELDW_2.def", "x" : 709, "y" : 210, "z" : -1, "border" : "TOELDW_2.bmp", "area" : "TZELDW_2.bmp" }, - "dwellingLvl4": { "animation" : "TBELDW_3.def", "x" : 108, "y" : 131, "z" : -1, "border" : "TOELDW_3.bmp", "area" : "TZELDW_3.bmp" }, - "dwellingLvl5": { "animation" : "TBELDW_4.def", "x" : 264, "y" : 168, "z" : -1, "border" : "TOELDW_4.bmp", "area" : "TZELDW_4.bmp" }, - "dwellingLvl6": { "animation" : "TBELDW_5.def", "x" : 394, "y" : 283, "z" : 4, "border" : "TOELDW_5.bmp", "area" : "TZELDW_5.bmp" }, - "dwellingLvl7": { "animation" : "TBELDW_6.def", "x" : 43, "y" : 16, "z" : -2, "border" : "TOELDW_6.bmp", "area" : "TZELDW_6.bmp" }, - "dwellingUpLvl1": { "animation" : "TBELUP_0.def", "x" : 689, "y" : 250, "border" : "TOELUP_0.bmp", "area" : "TZELUP_0.bmp" }, - "dwellingUpLvl2": { "animation" : "TBELUP_1.def", "x" : 630, "y" : 50, "z" : -1, "border" : "TOELUP_1.bmp", "area" : "TZELUP_1.bmp" }, - "dwellingUpLvl3": { "animation" : "TBELUP_2.def", "x" : 709, "y" : 210, "z" : -1, "border" : "TOELUP_2.bmp", "area" : "TZELUP_2.bmp" }, - "dwellingUpLvl4": { "animation" : "TBELUP_3.def", "x" : 108, "y" : 131, "z" : -1, "border" : "TOELUP_3.bmp", "area" : "TZELUP_3.bmp" }, - "dwellingUpLvl5": { "animation" : "TBELUP_4.def", "x" : 264, "y" : 168, "z" : -1, "border" : "TOELUP_4.bmp", "area" : "TZELUP_4.bmp" }, - "dwellingUpLvl6": { "animation" : "TBELUP_5.def", "x" : 394, "y" : 283, "z" : 4, "border" : "TOELUP_5.bmp", "area" : "TZELUP_5.bmp" }, - "dwellingUpLvl7": { "animation" : "TBELUP_6.def", "x" : 43, "y" : 0, "z" : -2, "border" : "TOELUP_6.bmp", "area" : "TZELUP_6.bmp" } + "extraAnimation2":{ "animation" : "TBELEXT5.def", "x" : 682, "y" : 183, "z" : 2 }, + "extraAnimation": { "animation" : "TBELEXT1.def", "x" : 23, "y" : 218, "z" : 3 }, + "mageGuild1": { "animation" : "TBELMAGE.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAGE.bmp", "area" : "TZELMAGE.bmp" }, + "mageGuild2": { "animation" : "TBELMAG2.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG2.bmp", "area" : "TZELMAG2.bmp" }, + "mageGuild3": { "animation" : "TBELMAG3.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG3.bmp", "area" : "TZELMAG3.bmp" }, + "mageGuild4": { "animation" : "TBELMAG4.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG4.bmp", "area" : "TZELMAG4.bmp" }, + "mageGuild5": { "animation" : "TBELMAG5.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG5.bmp", "area" : "TZELMAG5.bmp" }, + "tavern": { "animation" : "TBELTVRN.def", "x" : 553, "y" : 203, "z" : 7, "border" : "TOELTVRN.bmp", "area" : "TZELTVRN.bmp" }, + "shipyard": { "animation" : "TBELDOCK.def", "x" : 239, "y" : 215, "z" : 5, "border" : "TOELDOCK.bmp", "area" : "TZELDOCK.bmp" }, + "fort": { "animation" : "TBELCSTL.def", "x" : 349, "y" : 101, "z" : 1, "border" : "TOELCSTL.bmp", "area" : "TZELCSTL.bmp" }, + "citadel": { "animation" : "TBELCAS2.def", "x" : 349, "y" : 101, "z" : 1, "border" : "TOELCAS2.bmp", "area" : "TZELCAS2.bmp" }, + "castle": { "animation" : "TBELCAS3.def", "x" : 349, "y" : 101, "z" : 1, "border" : "TOELCAS3.bmp", "area" : "TZELCAS3.bmp" }, + "villageHall": { "animation" : "TBELHALL.def", "x" : -1, "y" : 164, "z" : 8, "border" : "TOELHALL.bmp", "area" : "TZELHALL.bmp" }, + "townHall": { "animation" : "TBELHAL2.def", "x" : 0, "y" : 165, "z" : 8, "border" : "TOELHAL2.bmp", "area" : "TZELHAL2.bmp" }, + "cityHall": { "animation" : "TBELHAL3.def", "x" : 0, "y" : 165, "z" : 8, "border" : "TOELHAL3.bmp", "area" : "TZELHAL3.bmp" }, + "capitol": { "animation" : "TBELHAL4.def", "x" : 0, "y" : 164, "z" : 8, "border" : "TOELHAL4.bmp", "area" : "TZELHAL4.bmp" }, + "marketplace": { "animation" : "TBELMARK.def", "x" : 347, "y" : 216, "z" : 8, "border" : "TOELMARK.bmp", "area" : "TZELMARK.bmp" }, + "resourceSilo": { "animation" : "TBELSILO.def", "x" : 372, "y" : 171, "z" : 7, "border" : "TOELSILO.bmp", "area" : "TZELSILO.bmp" }, + "blacksmith": { "animation" : "TBELBLAK.def", "x" : 449, "y" : 151, "z" : 5, "border" : "TOELBLAK.bmp", "area" : "TZELBLAK.bmp" }, + "special1": { "animation" : "TBELSPEC.def", "x" : 284, "y" : 246, "z" : 9, "border" : "TOELSPEC.bmp", "area" : "TZELSPEC.bmp" }, + "horde1": { "animation" : "TBELHRD1.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELHRD1.bmp", "area" : "TZELHRD1.bmp", "hidden" : true }, + "horde1Upgr": { "animation" : "TBELHRD2.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELHRD2.bmp", "area" : "TZELHRD2.bmp", "hidden" : true, "builds" : "horde1" }, + "ship": { "animation" : "TBELBOAT.def", "x" : 239, "y" : 215, "z" : 5, "border" : "TOELBOAT.bmp", "area" : "TZELBOAT.bmp", "hidden" : true }, + "special2": { "animation" : "TBELEXT6.def", "x" : 104, "y" : 170, "z" : 6, "border" : "TOELEXT6.bmp", "area" : "TZELEXT6.bmp" }, + "grail": { "animation" : "TBELHOLY.def", "x" : 307, "y" : 2, "z" : 0, "border" : "TOELHOLY.bmp", "area" : "TZELHOLY.bmp" }, + "extraTownHall": { "animation" : "TBELEXT2.def", "x" : 232, "y" : 205, "z" : 4 }, + "extraCityHall": { "animation" : "TBELEXT3.def", "x" : 516, "y" : 223, "z" : 6 }, + "extraCapitol": { "animation" : "TBELEXT4.def", "x" : 0, "y" : 252, "z" : 9 }, + "dwellingLvl1": { "animation" : "TBELDW_0.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELDW_0.bmp", "area" : "TZELDW_0.bmp" }, + "dwellingLvl2": { "animation" : "TBELDW_1.def", "x" : 630, "y" : 50, "z" : 0, "border" : "TOELDW_1.bmp", "area" : "TZELDW_1.bmp" }, + "dwellingLvl3": { "animation" : "TBELDW_2.def", "x" : 709, "y" : 210, "z" : 5, "border" : "TOELDW_2.bmp", "area" : "TZELDW_2.bmp" }, + "dwellingLvl4": { "animation" : "TBELDW_3.def", "x" : 108, "y" : 131, "z" : 1, "border" : "TOELDW_3.bmp", "area" : "TZELDW_3.bmp" }, + "dwellingLvl5": { "animation" : "TBELDW_4.def", "x" : 264, "y" : 168, "z" : 0, "border" : "TOELDW_4.bmp", "area" : "TZELDW_4.bmp" }, + "dwellingLvl6": { "animation" : "TBELDW_5.def", "x" : 394, "y" : 283, "z" : 9, "border" : "TOELDW_5.bmp", "area" : "TZELDW_5.bmp" }, + "dwellingLvl7": { "animation" : "TBELDW_6.def", "x" : 34, "y" : 16, "z" : 0, "border" : "TOELDW_6.bmp", "area" : "TZELDW_6.bmp" }, + "dwellingUpLvl1": { "animation" : "TBELUP_0.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELUP_0.bmp", "area" : "TZELUP_0.bmp" }, + "dwellingUpLvl2": { "animation" : "TBELUP_1.def", "x" : 630, "y" : 50, "z" : 0, "border" : "TOELUP_1.bmp", "area" : "TZELUP_1.bmp" }, + "dwellingUpLvl3": { "animation" : "TBELUP_2.def", "x" : 709, "y" : 210, "z" : 5, "border" : "TOELUP_2.bmp", "area" : "TZELUP_2.bmp" }, + "dwellingUpLvl4": { "animation" : "TBELUP_3.def", "x" : 108, "y" : 131, "z" : 1, "border" : "TOELUP_3.bmp", "area" : "TZELUP_3.bmp" }, + "dwellingUpLvl5": { "animation" : "TBELUP_4.def", "x" : 264, "y" : 168, "z" : 0, "border" : "TOELUP_4.bmp", "area" : "TZELUP_4.bmp" }, + "dwellingUpLvl6": { "animation" : "TBELUP_5.def", "x" : 394, "y" : 283, "z" : 9, "border" : "TOELUP_5.bmp", "area" : "TZELUP_5.bmp" }, + "dwellingUpLvl7": { "animation" : "TBELUP_6.def", "x" : 34, "y" : 0, "z" : 0, "border" : "TOELUP_6.bmp", "area" : "TZELUP_6.bmp" } }, "musicTheme" : [ "music/ElemTown" ], diff --git a/config/factions/fortress.json b/config/factions/fortress.json index d238f9d52..9c82ceeb0 100644 --- a/config/factions/fortress.json +++ b/config/factions/fortress.json @@ -79,41 +79,41 @@ }, "structures" : { - "extraAnimation": { "animation" : "TBFREXT2.def", "x" : 372, "y" : 227 }, + "extraAnimation": { "animation" : "TBFREXT2.def", "x" : 372, "y" : 227, "z" : -1 }, "mageGuild1": { "animation" : "TBFRMAGE.def", "x" : 0, "y" : 200, "z" : -1, "border" : "TOFMAG1A.bmp", "area" : "TZFMAG1A.bmp" }, "mageGuild2": { "animation" : "TBFRMAG2.def", "x" : 0, "y" : 177, "z" : -1, "border" : "TOFMAG2A.bmp", "area" : "TZFMAG2A.bmp" }, "mageGuild3": { "animation" : "TBFRMAG3.def", "x" : 0, "y" : 135, "z" : -1, "border" : "TOFMAG3A.bmp", "area" : "TZFMAG3A.bmp" }, "tavern": { "animation" : "TBFRTVRN.def", "x" : 634, "y" : 219, "z" : 3, "border" : "TOFTAVA.bmp", "area" : "TZFTAVA.bmp" }, "shipyard": { "animation" : "TBFRDOCK.def", "x" : 197, "y" : 294, "border" : "TOFDCK2.bmp", "area" : "TZFDCK2.bmp" }, - "fort": { "animation" : "TBFRCSTL.def", "x" : 368, "y" : 118, "z" : -1, "border" : "TOFCAS1.bmp", "area" : "TZFCAS1.bmp" }, - "citadel": { "animation" : "TBFRCAS2.def", "x" : 368, "y" : 98, "z" : -1, "border" : "TOFCAS2.bmp", "area" : "TZFCAS2.bmp" }, - "castle": { "animation" : "TBFRCAS3.def", "x" : 368, "y" : 55, "z" : -1, "border" : "TOFCAS3.bmp", "area" : "TZFCAS3.bmp" }, - "villageHall": { "animation" : "TBFRHALL.def", "x" : 166, "y" : 128, "z" : 1, "border" : "TOFHAL1.bmp", "area" : "TZFHAL1.bmp" }, - "townHall": { "animation" : "TBFRHAL2.def", "x" : 166, "y" : 97, "z" : 1, "border" : "TOFHAL2.bmp", "area" : "TZFHAL2.bmp" }, - "cityHall": { "animation" : "TBFRHAL3.def", "x" : 166, "y" : 51, "z" : 1, "border" : "TOFHAL3.bmp", "area" : "TZFHAL3.bmp" }, - "capitol": { "animation" : "TBFRHAL4.def", "x" : 166, "y" : 2, "z" : 1, "border" : "TOFHAL4.bmp", "area" : "TZFHAL4.bmp" }, + "fort": { "animation" : "TBFRCSTL.def", "x" : 368, "y" : 118, "z" : -2, "border" : "TOFCAS1.bmp", "area" : "TZFCAS1.bmp" }, + "citadel": { "animation" : "TBFRCAS2.def", "x" : 368, "y" : 98, "z" : -2, "border" : "TOFCAS2.bmp", "area" : "TZFCAS2.bmp" }, + "castle": { "animation" : "TBFRCAS3.def", "x" : 368, "y" : 55, "z" : -2, "border" : "TOFCAS3.bmp", "area" : "TZFCAS3.bmp" }, + "villageHall": { "animation" : "TBFRHALL.def", "x" : 166, "y" : 128, "z" : 3, "border" : "TOFHAL1.bmp", "area" : "TZFHAL1.bmp" }, + "townHall": { "animation" : "TBFRHAL2.def", "x" : 166, "y" : 97, "z" : 3, "border" : "TOFHAL2.bmp", "area" : "TZFHAL2.bmp" }, + "cityHall": { "animation" : "TBFRHAL3.def", "x" : 166, "y" : 51, "z" : 3, "border" : "TOFHAL3.bmp", "area" : "TZFHAL3.bmp" }, + "capitol": { "animation" : "TBFRHAL4.def", "x" : 166, "y" : 2, "z" : 3, "border" : "TOFHAL4.bmp", "area" : "TZFHAL4.bmp" }, "marketplace": { "animation" : "TBFRMARK.def", "x" : 382, "y" : 219, "z" : 4, "border" : "TOFMRKAA.bmp", "area" : "TZFMRKAA.bmp" }, "resourceSilo": { "animation" : "TBFRSILO.def", "x" : 448, "y" : 210, "z" : 2, "border" : "TOFMRK2A.bmp", "area" : "TZFMRK2A.bmp" }, - "blacksmith": { "animation" : "TBFRBLAK.def", "x" : 360, "y" : 160, "border" : "TOFAIDA.bmp", "area" : "TZFAIDA.bmp" }, + "blacksmith": { "animation" : "TBFRBLAK.def", "x" : 360, "y" : 160, "z" : 1, "border" : "TOFAIDA.bmp", "area" : "TZFAIDA.bmp" }, "special1": { "animation" : "TBFRSPEC.def", "x" : 703, "y" : 36, "border" : "TOFCAGE.bmp", "area" : "TZFCAGE.bmp" }, "horde1": { "animation" : "TBFRHRD1.def", "x" : 641, "y" : 121, "z" : 1, "border" : "TOFGNL1H.bmp", "area" : "TZFGNL1H.bmp", "hidden" : true }, "horde1Upgr": { "animation" : "TBFRHRD2.def", "x" : 641, "y" : 68, "z" : 1, "border" : "TOFGNL2H.bmp", "area" : "TZFGNL2H.bmp", "hidden" : true, "builds" : "horde1" }, "ship": { "animation" : "TBFRBOAT.def", "x" : 197, "y" : 294, "z" : 1, "border" : "TOFDCK1.bmp", "area" : "TZFDCK1.bmp", "hidden" : true }, - "special2": { "animation" : "TBFREXT0.def", "x" : 341, "y" : 174, "border" : "TOFCASD.bmp", "area" : "TZFCASD.bmp" }, - "special3": { "animation" : "TBFREXT1.def", "x" : 349, "y" : 79, "z" : -2, "border" : "TOFCASA.bmp", "area" : "TZFCASA.bmp" }, + "special2": { "animation" : "TBFREXT0.def", "x" : 341, "y" : 174, "z" : 0, "border" : "TOFCASD.bmp", "area" : "TZFCASD.bmp" }, + "special3": { "animation" : "TBFREXT1.def", "x" : 349, "y" : 79, "z" : -3, "border" : "TOFCASA.bmp", "area" : "TZFCASA.bmp" }, "grail": { "animation" : "TBFRHOLY.def", "x" : 468, "y" : 260, "z" : 5, "border" : "TOFHLYAA.bmp", "area" : "TZFHLYAA.bmp" }, - "extraCapitol": { "animation" : "TBFRWTRW.def", "x" : 320, "y" : 141 }, + "extraCapitol": { "animation" : "TBFRWTRW.def", "x" : 320, "y" : 141, "z" : 2 }, "dwellingLvl1": { "animation" : "TBFRDW_0.def", "x" : 641, "y" : 168, "z" : 1, "border" : "TOFGNL1.bmp", "area" : "TZFGNL1.bmp" }, "dwellingLvl2": { "animation" : "TBFRDW_1.def", "x" : 141, "y" : 178, "border" : "TOFLIZ1.bmp", "area" : "TZFLIZ1.bmp" }, "dwellingLvl3": { "animation" : "TBFRDW_3.def", "x" : 192, "y" : 85, "border" : "TOFFLY1A.bmp", "area" : "TZFFLY1A.bmp" }, - "dwellingLvl4": { "animation" : "TBFRDW_4.def", "x" : 0, "y" : 292, "border" : "TOFBAS1.bmp", "area" : "TZFBAS1.bmp" }, + "dwellingLvl4": { "animation" : "TBFRDW_4.def", "x" : 0, "y" : 292, "z" : 1, "border" : "TOFBAS1.bmp", "area" : "TZFBAS1.bmp" }, "dwellingLvl5": { "animation" : "TBFRDW_2.def", "x" : 15, "y" : 127, "z" : -2, "border" : "TOFGOR1.bmp", "area" : "TZFGOR1.bmp" }, "dwellingLvl6": { "animation" : "TBFRDW_5.def", "x" : 0, "y" : 4, "border" : "TOFWYV1.bmp", "area" : "TZFWYV1.bmp" }, "dwellingLvl7": { "animation" : "TBFRDW_6.def", "x" : 612, "y" : 291, "z" : 5, "border" : "TOFHYD1A.bmp", "area" : "TZFHYD1A.bmp" }, "dwellingUpLvl1": { "animation" : "TBFRUP_0.def", "x" : 641, "y" : 107, "z" : 1, "border" : "TOFGNL2.bmp", "area" : "TZFGNL2.bmp" }, "dwellingUpLvl2": { "animation" : "TBFRUP_1.def", "x" : 125, "y" : 163, "border" : "TOFLIZ2.bmp", "area" : "TZFLIZ2.bmp" }, "dwellingUpLvl3": { "animation" : "TBFRUP_3.def", "x" : 159, "y" : 19, "border" : "TOFFLY2A.bmp", "area" : "TZFFLY2A.bmp" }, - "dwellingUpLvl4": { "animation" : "TBFRUP_4.def", "x" : 0, "y" : 257, "border" : "TOFBAS2.bmp", "area" : "TZFBAS2.bmp" }, + "dwellingUpLvl4": { "animation" : "TBFRUP_4.def", "x" : 0, "y" : 257, "z" : 1, "border" : "TOFBAS2.bmp", "area" : "TZFBAS2.bmp" }, "dwellingUpLvl5": { "animation" : "TBFRUP_2.def", "x" : 15, "y" : 69, "z" : -2, "border" : "TOFGOR2.bmp", "area" : "TZFGOR2.bmp" }, "dwellingUpLvl6": { "animation" : "TBFRUP_5.def", "x" : 0, "y" : 4, "border" : "TOFWYV2.bmp", "area" : "TZFWYV2.bmp" }, "dwellingUpLvl7": { "animation" : "TBFRUP_6.def", "x" : 587, "y" : 263, "z" : 5, "border" : "TOFHYD2A.bmp", "area" : "TZFHYD2A.bmp" } diff --git a/config/factions/inferno.json b/config/factions/inferno.json index 04cd9dfc3..813f392aa 100644 --- a/config/factions/inferno.json +++ b/config/factions/inferno.json @@ -86,9 +86,9 @@ "mageGuild4": { "animation" : "TBINMAG4.def", "x" : 667, "y" : 56, "border" : "TOIMAG4A.bmp", "area" : "TZIMAG4A.bmp" }, "mageGuild5": { "animation" : "TBINMAG5.def", "x" : 667, "y" : 35, "border" : "TOIMAG5A.bmp", "area" : "TZIMAG5A.bmp" }, "tavern": { "animation" : "TBINTVRN.def", "x" : 105, "y" : 219, "z" : 1, "border" : "TOITAV.bmp", "area" : "TZITAV.bmp" }, - "fort": { "animation" : "TBINCSTL.def", "x" : 222, "y" : 44, "border" : "TOICAS2A.bmp", "area" : "TZICAS2A.bmp" }, - "citadel": { "animation" : "TBINCAS2.def", "x" : 222, "y" : 44, "border" : "TOICAS1A.bmp", "area" : "TZICAS1A.bmp" }, - "castle": { "animation" : "TBINCAS3.def", "x" : 222, "y" : 18, "border" : "TOICAS3A.bmp", "area" : "TZICAS3A.bmp" }, + "fort": { "animation" : "TBINCSTL.def", "x" : 222, "y" : 44, "z" : -2, "border" : "TOICAS2A.bmp", "area" : "TZICAS2A.bmp" }, + "citadel": { "animation" : "TBINCAS2.def", "x" : 222, "y" : 44, "z" : -2, "border" : "TOICAS1A.bmp", "area" : "TZICAS1A.bmp" }, + "castle": { "animation" : "TBINCAS3.def", "x" : 222, "y" : 18, "z" : -2, "border" : "TOICAS3A.bmp", "area" : "TZICAS3A.bmp" }, "villageHall": { "animation" : "TBINHALL.def", "x" : 0, "y" : 174, "border" : "TOIHAL1.bmp", "area" : "TZIHAL1.bmp" }, "townHall": { "animation" : "TBINHAL2.def", "x" : 0, "y" : 174, "border" : "TOIHAL2.bmp", "area" : "TZIHAL2.bmp" }, "cityHall": { "animation" : "TBINHAL3.def", "x" : 0, "y" : 174, "border" : "TOIHAL3.bmp", "area" : "TZIHAL3.bmp" }, @@ -98,9 +98,9 @@ "blacksmith": { "animation" : "TBINBLAK.def", "x" : 684, "y" : 253, "z" : 1, "border" : "TOIBLKA.bmp", "area" : "TZIBLKA.bmp" }, "horde1": { "animation" : "TBINHRD1.def", "x" : 614, "y" : 256, "border" : "TOIMP1HA.bmp", "area" : "TZIMP1HA.bmp", "hidden" : true }, "horde1Upgr": { "animation" : "TBINHRD2.def", "x" : 614, "y" : 221, "border" : "TOIMP2HA.bmp", "area" : "TZIMP2HA.bmp", "hidden" : true, "builds" : "horde1" }, - "special2": { "animation" : "TBINEXT0.def", "x" : 297, "y" : 0, "z" : -1, "border" : "TOICAB1A.bmp", "area" : "TZICAB1A.bmp" }, + "special2": { "animation" : "TBINEXT0.def", "x" : 297, "y" : 0, "z" : -4, "border" : "TOICAB1A.bmp", "area" : "TZICAB1A.bmp" }, "special3": { "animation" : "TBINEXT1.def", "x" : 227, "y" : 174, "z" : -1, "border" : "TOICASGA.bmp", "area" : "TZICASGA.bmp" }, - "special4": { "animation" : "TBINEXT2.def", "x" : 593, "y" : 104, "border" : "TOIPAIN.bmp", "area" : "TZIPAIN.bmp" }, + "special4": { "animation" : "TBINEXT2.def", "x" : 593, "y" : 104, "z" : -1, "border" : "TOIPAIN.bmp", "area" : "TZIPAIN.bmp" }, "horde2": { "animation" : "TBINHRD3.def", "x" : 10, "y" : 301, "border" : "TOIHND1H.bmp", "area" : "TZIHND1H.bmp", "hidden" : true }, "horde2Upgr": { "animation" : "TBINHRD4.def", "x" : 9, "y" : 273, "border" : "TOIHND2H.bmp", "area" : "TZIHND2H.bmp", "hidden" : true, "builds" : "horde2" }, "grail": { "animation" : "TBINHOLY.def", "x" : 24, "y" : 10, "z" : -1, "border" : "TOIHOLY.bmp", "area" : "TZIHOLY.bmp" }, @@ -110,14 +110,14 @@ "dwellingLvl4": { "animation" : "TBINDW_3.def", "x" : 414, "y" : 204, "z" : 2, "border" : "TOIDMN1.bmp", "area" : "TZIDMN1.bmp" }, "dwellingLvl5": { "animation" : "TBINDW_4.def", "x" : 359, "y" : 296, "z" : 3, "border" : "TOIPIT1.bmp", "area" : "TZIPIT1.bmp" }, "dwellingLvl6": { "animation" : "TBINDW_5.def", "x" : 220, "y" : 350, "z" : 5, "border" : "TOIEFR1.bmp", "area" : "TZIEFR1.bmp" }, - "dwellingLvl7": { "animation" : "TBINDW_6.def", "x" : 420, "y" : 153, "z" : -1, "border" : "TOIDVL1.bmp", "area" : "TZIDVL1.bmp" }, + "dwellingLvl7": { "animation" : "TBINDW_6.def", "x" : 420, "y" : 153, "z" : -3, "border" : "TOIDVL1.bmp", "area" : "TZIDVL1.bmp" }, "dwellingUpLvl1": { "animation" : "TBINUP_0.def", "x" : 614, "y" : 221, "border" : "TOIMP2A.bmp", "area" : "TZIMP2A.bmp" }, "dwellingUpLvl2": { "animation" : "TBINUP_1.def", "x" : 187, "y" : 212, "z" : 4, "border" : "TOIGOG2A.bmp", "area" : "TZIGOG2A.bmp" }, "dwellingUpLvl3": { "animation" : "TBINUP_2.def", "x" : 9, "y" : 273, "border" : "TOIHND2.bmp", "area" : "TZIHND2.bmp" }, "dwellingUpLvl4": { "animation" : "TBINUP_3.def", "x" : 412, "y" : 197, "z" : 2, "border" : "TOIDMN2.bmp", "area" : "TZIDMN2.bmp" }, "dwellingUpLvl5": { "animation" : "TBINUP_4.def", "x" : 359, "y" : 244, "z" : 3, "border" : "TOIPIT2.bmp", "area" : "TZIPIT2.bmp" }, "dwellingUpLvl6": { "animation" : "TBINUP_5.def", "x" : 220, "y" : 282, "z" : 5, "border" : "TOIEFR2.bmp", "area" : "TZIEFR2.bmp" }, - "dwellingUpLvl7": { "animation" : "TBINUP_6.def", "x" : 420, "y" : 105, "z" : -1, "border" : "TOIDVL2.bmp", "area" : "TZIDVL2.bmp" } + "dwellingUpLvl7": { "animation" : "TBINUP_6.def", "x" : 420, "y" : 105, "z" : -3, "border" : "TOIDVL2.bmp", "area" : "TZIDVL2.bmp" } }, "musicTheme" : [ "music/InfernoTown" ], diff --git a/config/factions/necropolis.json b/config/factions/necropolis.json index 8485e092b..21ac9c5e9 100644 --- a/config/factions/necropolis.json +++ b/config/factions/necropolis.json @@ -80,7 +80,7 @@ }, "structures" : { - "extraAnimation": { "animation" : "TBNCEXT2.def", "x" : 25, "y" : 279, "z" : 8 }, + "extraAnimation": { "animation" : "TBNCEXT2.def", "x" : 25, "y" : 279, "z" : 9 }, "mageGuild1": { "animation" : "TBNCMAGE.def", "x" : 341, "y" : 116, "z" : -1, "border" : "TONMAG1.bmp", "area" : "TZNMAG1.bmp" }, "mageGuild2": { "animation" : "TBNCMAG2.def", "x" : 341, "y" : 97, "z" : -1, "border" : "TONMAG2.bmp", "area" : "TZNMAG2.bmp" }, "mageGuild3": { "animation" : "TBNCMAG3.def", "x" : 341, "y" : 78, "z" : -1, "border" : "TONMAG3.bmp", "area" : "TZNMAG3.bmp" }, @@ -91,36 +91,36 @@ "fort": { "animation" : "TBNCCSTL.def", "x" : 138, "y" : 66, "border" : "TONCAS1.bmp", "area" : "TZNCAS1.bmp" }, "citadel": { "animation" : "TBNCCAS2.def", "x" : 139, "y" : 66, "border" : "TONCAS2.bmp", "area" : "TZNCAS2.bmp" }, "castle": { "animation" : "TBNCCAS3.def", "x" : 34, "y" : 18, "border" : "TONCAS3.bmp", "area" : "TZNCAS3.bmp" }, - "villageHall": { "animation" : "TBNCHALL.def", "x" : 468, "y" : 76, "z" : -1, "border" : "TONHAL1.bmp", "area" : "TZNHAL1.bmp" }, - "townHall": { "animation" : "TBNCHAL2.def", "x" : 482, "y" : 56, "z" : -1, "border" : "TONHAL2.bmp", "area" : "TZNHAL2.bmp" }, - "cityHall": { "animation" : "TBNCHAL3.def", "x" : 478, "y" : 26, "z" : -1, "border" : "TONHAL3.bmp", "area" : "TZNHAL3.bmp" }, - "capitol": { "animation" : "TBNCHAL4.def", "x" : 481, "y" : 26, "z" : -1, "border" : "TONHAL4.bmp", "area" : "TZNHAL4.bmp" }, + "villageHall": { "animation" : "TBNCHALL.def", "x" : 468, "y" : 76, "z" : -2, "border" : "TONHAL1.bmp", "area" : "TZNHAL1.bmp" }, + "townHall": { "animation" : "TBNCHAL2.def", "x" : 482, "y" : 56, "z" : -2, "border" : "TONHAL2.bmp", "area" : "TZNHAL2.bmp" }, + "cityHall": { "animation" : "TBNCHAL3.def", "x" : 478, "y" : 26, "z" : -2, "border" : "TONHAL3.bmp", "area" : "TZNHAL3.bmp" }, + "capitol": { "animation" : "TBNCHAL4.def", "x" : 481, "y" : 26, "z" : -2, "border" : "TONHAL4.bmp", "area" : "TZNHAL4.bmp" }, "marketplace": { "animation" : "TBNCMARK.def", "x" : 347, "y" : 215, "z" : 2, "border" : "TONMRK1.bmp", "area" : "TZNMRK1.bmp" }, "resourceSilo": { "animation" : "TBNCSILO.def", "x" : 276, "y" : 185, "z" : 1, "border" : "TONMRK2.bmp", "area" : "TZNMRK2.bmp" }, - "blacksmith": { "animation" : "TBNCBLAK.def", "x" : 382, "y" : 252, "z" : 6, "border" : "TONSMITA.bmp", "area" : "TZNSMITA.bmp" }, + "blacksmith": { "animation" : "TBNCBLAK.def", "x" : 382, "y" : 252, "z" : 7, "border" : "TONSMITA.bmp", "area" : "TZNSMITA.bmp" }, "special1": { "animation" : "TBNCSPEC.def", "x" : 18, "y" : 0, "z" : -1, "border" : "TONSHRDA.bmp", "area" : "TZNSHRDA.bmp" }, - "horde1": { "animation" : "TBNCHRD1.def", "x" : 80, "y" : 222, "z" : 4, "border" : "TONSKE1H.bmp", "area" : "TZNSKE1H.bmp", "hidden" : true }, - "horde1Upgr": { "animation" : "TBNCHRD2.def", "x" : 64, "y" : 222, "z" : 4, "border" : "TONSKE2H.bmp", "area" : "TZNSKE2H.bmp", "hidden" : true, "builds" : "horde1" }, + "horde1": { "animation" : "TBNCHRD1.def", "x" : 80, "y" : 222, "z" : 5, "border" : "TONSKE1H.bmp", "area" : "TZNSKE1H.bmp", "hidden" : true }, + "horde1Upgr": { "animation" : "TBNCHRD2.def", "x" : 64, "y" : 222, "z" : 5, "border" : "TONSKE2H.bmp", "area" : "TZNSKE2H.bmp", "hidden" : true, "builds" : "horde1" }, "ship": { "animation" : "TBNCBOAT.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPNA.bmp", "area" : "TZNSHPNA.bmp", "hidden" : true }, "special2": { "animation" : "TBNCEXT0.def", "x" : 307, "y" : 61, "z" : -2, "border" : "TONNECRA.bmp", "area" : "TZNNECRA.bmp" }, "special3": { "animation" : "TBNCEXT1.def", "x" : 247, "y" : 275, "z" : 4, "border" : "TONSKELT.bmp", "area" : "TZNSKELT.bmp" }, "grail": { "animation" : "TBNCHOLY.def", "x" : 410, "y" : 88, "border" : "TONHOLYA.bmp", "area" : "TZNHOLYA.bmp" }, - "extraTownHall": { "animation" : "TBNCEXT3.def", "x" : 0, "y" : 241, "z" : 5 }, - "extraCityHall": { "animation" : "TBNCEXT4.def", "x" : 321, "y" : 255, "z" : 5 }, - "extraCapitol": { "animation" : "TBNCEXT5.def", "x" : 475, "y" : 257, "z" : 5 }, - "dwellingLvl1": { "animation" : "TBNCDW_0.def", "x" : 80, "y" : 222, "z" : 4, "border" : "TONSKEL1.bmp", "area" : "TZNSKEL1.bmp" }, + "extraTownHall": { "animation" : "TBNCEXT3.def", "x" : 0, "y" : 241, "z" : 6 }, + "extraCityHall": { "animation" : "TBNCEXT4.def", "x" : 321, "y" : 255, "z" : 6 }, + "extraCapitol": { "animation" : "TBNCEXT5.def", "x" : 475, "y" : 257, "z" : 6 }, + "dwellingLvl1": { "animation" : "TBNCDW_0.def", "x" : 80, "y" : 222, "z" : 5, "border" : "TONSKEL1.bmp", "area" : "TZNSKEL1.bmp" }, "dwellingLvl2": { "animation" : "TBNCDW_1.def", "x" : 502, "y" : 223, "z" : 1, "border" : "TONZOMB1.bmp", "area" : "TZNZOMB1.bmp" }, - "dwellingLvl3": { "animation" : "TBNCDW_2.def", "x" : 0, "y" : 187, "z" : 7, "border" : "TONWIGH1.bmp", "area" : "TZNWIGH1.bmp" }, + "dwellingLvl3": { "animation" : "TBNCDW_2.def", "x" : 0, "y" : 187, "z" : 8, "border" : "TONWIGH1.bmp", "area" : "TZNWIGH1.bmp" }, "dwellingLvl4": { "animation" : "TBNCDW_3.def", "x" : 607, "y" : 212, "z" : 2, "border" : "TONVAM1.bmp", "area" : "TZNVAM1.bmp" }, "dwellingLvl5": { "animation" : "TBNCDW_4.def", "x" : 206, "y" : 207, "z" : 3, "border" : "TONLICH1.bmp", "area" : "TZNLICH1.bmp" }, - "dwellingLvl6": { "animation" : "TBNCDW_5.def", "x" : 0, "y" : 31, "border" : "TONBKN1.bmp", "area" : "TZNBKN1.bmp" }, + "dwellingLvl6": { "animation" : "TBNCDW_5.def", "x" : 0, "y" : 31, "z" : -2, "border" : "TONBKN1.bmp", "area" : "TZNBKN1.bmp" }, "dwellingLvl7": { "animation" : "TBNCDW_6.def", "x" : 663, "y" : 25, "border" : "TONBON1.bmp", "area" : "TZNBON1.bmp" }, - "dwellingUpLvl1": { "animation" : "TBNCUP_0.def", "x" : 64, "y" : 222, "z" : 4, "border" : "TONSKEL2.bmp", "area" : "TZNSKEL2.bmp" }, + "dwellingUpLvl1": { "animation" : "TBNCUP_0.def", "x" : 64, "y" : 222, "z" : 5, "border" : "TONSKEL2.bmp", "area" : "TZNSKEL2.bmp" }, "dwellingUpLvl2": { "animation" : "TBNCUP_1.def", "x" : 498, "y" : 224, "z" : 1, "border" : "TONZOMB2.bmp", "area" : "TZNZOMB2.bmp" }, - "dwellingUpLvl3": { "animation" : "TBNCUP_2.def", "x" : 0, "y" : 179, "z" : 7, "border" : "TONWIGH2.bmp", "area" : "TZNWIGH2.bmp" }, + "dwellingUpLvl3": { "animation" : "TBNCUP_2.def", "x" : 0, "y" : 179, "z" : 8, "border" : "TONWIGH2.bmp", "area" : "TZNWIGH2.bmp" }, "dwellingUpLvl4": { "animation" : "TBNCUP_3.def", "x" : 615, "y" : 193, "z" : 2, "border" : "TONVAM2.bmp", "area" : "TZNVAM2.bmp" }, "dwellingUpLvl5": { "animation" : "TBNCUP_4.def", "x" : 222, "y" : 171, "z" : 3, "border" : "TONLICH2.bmp", "area" : "TZNLICH2.bmp" }, - "dwellingUpLvl6": { "animation" : "TBNCUP_5.def", "x" : 0, "y" : 30, "border" : "TONBKN2.bmp", "area" : "TZNBKN2.bmp" }, + "dwellingUpLvl6": { "animation" : "TBNCUP_5.def", "x" : 0, "y" : 30, "z" : -2, "border" : "TONBKN2.bmp", "area" : "TZNBKN2.bmp" }, "dwellingUpLvl7": { "animation" : "TBNCUP_6.def", "x" : 662, "y" : 23, "border" : "TONBON2.bmp", "area" : "TZNBON2.bmp" } }, diff --git a/config/factions/rampart.json b/config/factions/rampart.json index 42bd462f9..c1c610152 100644 --- a/config/factions/rampart.json +++ b/config/factions/rampart.json @@ -86,9 +86,9 @@ "mageGuild4": { "animation" : "TBRMMAG4.def", "x" : 406, "y" : 129, "z" : -1, "border" : "TORMAG4.bmp", "area" : "TZRMAG4.bmp" }, "mageGuild5": { "animation" : "TBRMMAG5.def", "x" : 384, "y" : 104, "z" : -1, "border" : "TORMAG5.bmp", "area" : "TZRMAG5.bmp" }, "tavern": { "animation" : "TBRMTVRN.def", "x" : 181, "y" : 229, "z" : 1, "border" : "TORTAV.bmp", "area" : "TZRTAV.bmp" }, - "fort": { "animation" : "TBRMCSTL.def", "x" : 63, "y" : 25, "z" : -2, "border" : "TORCAS1.bmp", "area" : "TZRCAS1.bmp" }, - "citadel": { "animation" : "TBRMCAS2.def", "x" : 79, "y" : 18, "z" : -2, "border" : "TORCAS3.bmp", "area" : "TZRCAS3.bmp" }, - "castle": { "animation" : "TBRMCAS3.def", "x" : 79, "y" : 18, "z" : -2, "border" : "TORCAS2.bmp", "area" : "TZRCAS2.bmp" }, + "fort": { "animation" : "TBRMCSTL.def", "x" : 63, "y" : 25, "z" : -4, "border" : "TORCAS1.bmp", "area" : "TZRCAS1.bmp" }, + "citadel": { "animation" : "TBRMCAS2.def", "x" : 79, "y" : 18, "z" : -4, "border" : "TORCAS3.bmp", "area" : "TZRCAS3.bmp" }, + "castle": { "animation" : "TBRMCAS3.def", "x" : 79, "y" : 18, "z" : -4, "border" : "TORCAS2.bmp", "area" : "TZRCAS2.bmp" }, "villageHall": { "animation" : "TBRMHALL.def", "x" : 565, "y" : 216, "border" : "TORHAL1.bmp", "area" : "TZRHAL1.bmp" }, "townHall": { "animation" : "TBRMHAL2.def", "x" : 538, "y" : 187, "border" : "TORHAL2.bmp", "area" : "TZRHAL2.bmp" }, "cityHall": { "animation" : "TBRMHAL3.def", "x" : 538, "y" : 187, "border" : "TORHAL3.bmp", "area" : "TZRHAL3.bmp" }, @@ -103,20 +103,20 @@ "special3": { "animation" : "TBRMEXT1.def", "x" : 0, "y" : 181, "z" : 1, "border" : "TORDWFT.bmp", "area" : "TZRDWFT.bmp" }, "horde2": { "animation" : "TBRMHRD3.def", "x" : 47, "y" : 142, "z" : -1, "border" : "TORTRE1H.bmp", "area" : "TZRTRE1H.bmp", "hidden" : true }, "horde2Upgr": { "animation" : "TBRMHRD4.def", "x" : 47, "y" : 142, "z" : -1, "border" : "TORTRE2H.bmp", "area" : "TZRTRE2H.bmp", "hidden" : true, "builds" : "horde2" }, - "grail": { "animation" : "TBRMHOLY.def", "x" : 0, "y" : 54, "z" : -1, "border" : "TORHOLY.bmp", "area" : "TZRHOLY.bmp" }, + "grail": { "animation" : "TBRMHOLY.def", "x" : 0, "y" : 54, "z" : -3, "border" : "TORHOLY.bmp", "area" : "TZRHOLY.bmp" }, "extraTownHall": { "animation" : "TBRMEXT3.def", "x" : 293, "y" : 235, "z" : 2 }, "extraCityHall": { "animation" : "TBRMEXT4.def", "x" : 295, "y" : 191, "z" : 0 }, "extraCapitol": { "animation" : "TBRMEXT5.def", "x" : 260, "y" : 171, "z" : 3 }, "dwellingLvl1": { "animation" : "TBRMDW_0.def", "x" : 0, "y" : 236, "z" : 2, "border" : "TORCEN1A.bmp", "area" : "TZRCEN1A.bmp" }, "dwellingLvl2": { "animation" : "TBRMDW_1.def", "x" : 0, "y" : 154, "border" : "TORDWF1.bmp", "area" : "TZRDWF1.bmp" }, - "dwellingLvl3": { "animation" : "TBRMDW_2.def", "x" : 668, "y" : 101, "border" : "TORELF1.bmp", "area" : "TZRELF1.bmp" }, + "dwellingLvl3": { "animation" : "TBRMDW_2.def", "x" : 668, "y" : 101, "z" : -1, "border" : "TORELF1.bmp", "area" : "TZRELF1.bmp" }, "dwellingLvl4": { "animation" : "TBRMDW_3.def", "x" : 287, "y" : 73, "z" : -1, "border" : "TORPEG1A.bmp", "area" : "TZRPEG1A.bmp" }, "dwellingLvl5": { "animation" : "TBRMDW_4.def", "x" : 68, "y" : 146, "z" : -1, "border" : "TORTRE1.bmp", "area" : "TZRTRE1.bmp" }, "dwellingLvl6": { "animation" : "TBRMDW_5.def", "x" : 362, "y" : 90, "z" : -2, "border" : "TORUNI1.bmp", "area" : "TZRUNI1.bmp" }, "dwellingLvl7": { "animation" : "TBRMDW_6.def", "x" : 502, "y" : 27, "z" : -5, "border" : "TORDR1AA.bmp", "area" : "TZRDR1AA.bmp" }, "dwellingUpLvl1": { "animation" : "TBRMUP_0.def", "x" : 0, "y" : 236, "z" : 2, "border" : "TORCEN2A.bmp", "area" : "TZRCEN2A.bmp" }, "dwellingUpLvl2": { "animation" : "TBRMUP_1.def", "x" : 0, "y" : 143, "border" : "TORDWF2.bmp", "area" : "TZRDWF2.bmp" }, - "dwellingUpLvl3": { "animation" : "TBRMUP_2.def", "x" : 665, "y" : 101, "border" : "TORELF2.bmp", "area" : "TZRELF2.bmp" }, + "dwellingUpLvl3": { "animation" : "TBRMUP_2.def", "x" : 665, "y" : 101, "z" : -1, "border" : "TORELF2.bmp", "area" : "TZRELF2.bmp" }, "dwellingUpLvl4": { "animation" : "TBRMUP_3.def", "x" : 287, "y" : 28, "z" : -1, "border" : "TORPEG2A.bmp", "area" : "TZRPEG2A.bmp" }, "dwellingUpLvl5": { "animation" : "TBRMUP_4.def", "x" : 63, "y" : 146, "z" : -1, "border" : "TORTRE2.bmp", "area" : "TZRTRE2.bmp" }, "dwellingUpLvl6": { "animation" : "TBRMUP_5.def", "x" : 362, "y" : 90, "z" : -2, "border" : "TORUNI2.bmp", "area" : "TZRUNI2.bmp" }, diff --git a/config/factions/stronghold.json b/config/factions/stronghold.json index 66af50a94..66bf92db0 100644 --- a/config/factions/stronghold.json +++ b/config/factions/stronghold.json @@ -80,9 +80,9 @@ "structures" : { "extraAnimation": { "animation" : "TBSTEXT3.def", "x" : 23, "y" : 20 }, - "mageGuild1": { "animation" : "TBSTMAGE.def", "x" : 473, "y" : 67, "z" : -1, "border" : "TOSMAG1.bmp", "area" : "TZSMAG1.bmp" }, - "mageGuild2": { "animation" : "TBSTMAG2.def", "x" : 473, "y" : 37, "z" : -1, "border" : "TOSMAG2.bmp", "area" : "TZSMAG2.bmp" }, - "mageGuild3": { "animation" : "TBSTMAG3.def", "x" : 473, "y" : 1, "z" : -1, "border" : "TOSMAG3.bmp", "area" : "TZSMAG3.bmp" }, + "mageGuild1": { "animation" : "TBSTMAGE.def", "x" : 473, "y" : 67, "z" : -2, "border" : "TOSMAG1.bmp", "area" : "TZSMAG1.bmp" }, + "mageGuild2": { "animation" : "TBSTMAG2.def", "x" : 473, "y" : 37, "z" : -2, "border" : "TOSMAG2.bmp", "area" : "TZSMAG2.bmp" }, + "mageGuild3": { "animation" : "TBSTMAG3.def", "x" : 473, "y" : 1, "z" : -2, "border" : "TOSMAG3.bmp", "area" : "TZSMAG3.bmp" }, "tavern": { "animation" : "TBSTTVRN.def", "x" : 170, "y" : 280, "z" : 2, "border" : "TOSTAV.bmp", "area" : "TZSTAV.bmp" }, "fort": { "animation" : "TBSTCSTL.def", "x" : 402, "y" : 148, "z" : -1, "border" : "TOSCA1.bmp", "area" : "TZSCA1.bmp" }, "citadel": { "animation" : "TBSTCAS2.def", "x" : 402, "y" : 114, "z" : -1, "border" : "TOSCA2.bmp", "area" : "TZSCA2.bmp" }, @@ -100,7 +100,7 @@ "special2": { "animation" : "TBSTEXT0.def", "x" : 473, "y" : 282, "z" : 3, "border" : "TOSMRK1C.bmp", "area" : "TZSMRK1C.bmp" }, "special3": { "animation" : "TBSTEXT1.def", "x" : 617, "y" : 286, "z" : 1, "border" : "TOSBLK2.bmp", "area" : "TZSBLK2.bmp" }, "special4": { "animation" : "TBSTEXT2.def", "x" : 313, "y" : 13, "z" : -1, "border" : "TOSVAH.bmp", "area" : "TZSVAH.bmp" }, - "grail": { "animation" : "TBSTHOLY.def", "x" : 321, "y" : 105, "z" : 2, "border" : "TOSHOLYA.bmp", "area" : "TZSHOLYA.bmp" }, + "grail": { "animation" : "TBSTHOLY.def", "x" : 321, "y" : 105, "z" : 3, "border" : "TOSHOLYA.bmp", "area" : "TZSHOLYA.bmp" }, "dwellingLvl1": { "animation" : "TBSTDW_0.def", "x" : 373, "y" : 239, "border" : "TOSGOB1.bmp", "area" : "TZSGOB1.bmp" }, "dwellingLvl2": { "animation" : "TBSTDW_1.def", "x" : 266, "y" : 246, "z" : 1, "border" : "TOSWOL1.bmp", "area" : "TZSWOL1.bmp" }, "dwellingLvl3": { "animation" : "TBSTDW_2.def", "x" : 566, "y" : 232, "z" : 2, "border" : "TOSORC1.bmp", "area" : "TZSORC1.bmp" }, diff --git a/config/factions/tower.json b/config/factions/tower.json index 04741ba0d..a66491500 100644 --- a/config/factions/tower.json +++ b/config/factions/tower.json @@ -79,19 +79,19 @@ }, "structures" : { - "mageGuild1": { "animation" : "TBTWMAGE.def", "x" : 597, "y" : 82, "border" : "TOTGLD1.bmp", "area" : "TZTGLD1.bmp" }, - "mageGuild2": { "animation" : "TBTWMAG2.def", "x" : 593, "y" : 65, "border" : "TOTGLD2.bmp", "area" : "TZTGLD2.bmp" }, - "mageGuild3": { "animation" : "TBTWMAG3.def", "x" : 593, "y" : 48, "border" : "TOTGLD3.bmp", "area" : "TZTGLD3.bmp" }, - "mageGuild4": { "animation" : "TBTWMAG4.def", "x" : 593, "y" : 31, "border" : "TOTGLD4.bmp", "area" : "TZTGLD4.bmp" }, - "mageGuild5": { "animation" : "TBTWMAG5.def", "x" : 593, "y" : 14, "border" : "TOTGLD5.bmp", "area" : "TZTGLD5.bmp" }, + "mageGuild1": { "animation" : "TBTWMAGE.def", "x" : 597, "y" : 82, "z" : -1, "border" : "TOTGLD1.bmp", "area" : "TZTGLD1.bmp" }, + "mageGuild2": { "animation" : "TBTWMAG2.def", "x" : 593, "y" : 65, "z" : -1, "border" : "TOTGLD2.bmp", "area" : "TZTGLD2.bmp" }, + "mageGuild3": { "animation" : "TBTWMAG3.def", "x" : 593, "y" : 48, "z" : -1, "border" : "TOTGLD3.bmp", "area" : "TZTGLD3.bmp" }, + "mageGuild4": { "animation" : "TBTWMAG4.def", "x" : 593, "y" : 31, "z" : -1, "border" : "TOTGLD4.bmp", "area" : "TZTGLD4.bmp" }, + "mageGuild5": { "animation" : "TBTWMAG5.def", "x" : 593, "y" : 14, "z" : -1, "border" : "TOTGLD5.bmp", "area" : "TZTGLD5.bmp" }, "tavern": { "animation" : "TBTWTVRN.def", "x" : 375, "y" : 278, "z" : 1, "border" : "TOTTAV.bmp", "area" : "TZTTAV.bmp" }, - "fort": { "animation" : "TBTWCSTL.def", "x" : 304, "y" : 0, "border" : "TOTCAS1.bmp", "area" : "TZTCAS1.bmp" }, - "citadel": { "animation" : "TBTWCAS2.def", "x" : 301, "y" : 0, "border" : "TOTCAS2.bmp", "area" : "TZTCAS2.bmp" }, - "castle": { "animation" : "TBTWCAS3.def", "x" : 301, "y" : 0, "border" : "TOTCAS3.bmp", "area" : "TZTCAS3.bmp" }, - "villageHall": { "animation" : "TBTWHALL.def", "x" : 0, "y" : 259, "z" : 1, "border" : "TOTHAL1.bmp", "area" : "TZTHAL1.bmp" }, - "townHall": { "animation" : "TBTWHAL2.def", "x" : 0, "y" : 220, "z" : 1, "border" : "TOTHAL2.bmp", "area" : "TZTHAL2.bmp" }, - "cityHall": { "animation" : "TBTWHAL3.def", "x" : 0, "y" : 82, "z" : 1, "border" : "TOTHAL3.bmp", "area" : "TZTHAL3.bmp" }, - "capitol": { "animation" : "TBTWHAL4.def", "x" : 0, "y" : 82, "z" : 1, "border" : "TOTHAL4.bmp", "area" : "TZTHAL4.bmp" }, + "fort": { "animation" : "TBTWCSTL.def", "x" : 304, "y" : 0, "z" : -1, "border" : "TOTCAS1.bmp", "area" : "TZTCAS1.bmp" }, + "citadel": { "animation" : "TBTWCAS2.def", "x" : 301, "y" : 0, "z" : -1, "border" : "TOTCAS2.bmp", "area" : "TZTCAS2.bmp" }, + "castle": { "animation" : "TBTWCAS3.def", "x" : 301, "y" : 0, "z" : -1, "border" : "TOTCAS3.bmp", "area" : "TZTCAS3.bmp" }, + "villageHall": { "animation" : "TBTWHALL.def", "x" : 0, "y" : 259, "z" : 2, "border" : "TOTHAL1.bmp", "area" : "TZTHAL1.bmp" }, + "townHall": { "animation" : "TBTWHAL2.def", "x" : 0, "y" : 220, "z" : 2, "border" : "TOTHAL2.bmp", "area" : "TZTHAL2.bmp" }, + "cityHall": { "animation" : "TBTWHAL3.def", "x" : 0, "y" : 82, "z" : 2, "border" : "TOTHAL3.bmp", "area" : "TZTHAL3.bmp" }, + "capitol": { "animation" : "TBTWHAL4.def", "x" : 0, "y" : 82, "z" : 2, "border" : "TOTHAL4.bmp", "area" : "TZTHAL4.bmp" }, "marketplace": { "animation" : "TBTWMARK.def", "x" : 614, "y" : 292, "border" : "TOTMRK.bmp", "area" : "TZTMRK.bmp" }, "resourceSilo": { "animation" : "TBTWSILO.def", "x" : 763, "y" : 214, "z" : 3, "border" : "TOTMRKS.bmp", "area" : "TZTMRKS.bmp" }, "blacksmith": { "animation" : "TBTWBLAK.def", "x" : 478, "y" : 211, "border" : "TOTBLKA.bmp", "area" : "TZTBLKA.bmp" }, @@ -101,7 +101,7 @@ "special2": { "animation" : "TBTWEXT0.def", "x" : 409, "y" : 82, "border" : "TOTCASW.bmp", "area" : "TZTCASW.bmp" }, "special3": { "animation" : "TBTWEXT1.def", "x" : 702, "y" : 115, "border" : "TOTGLDL.bmp", "area" : "TZTGLDL.bmp" }, "special4": { "animation" : "TBTWEXT2.def", "x" : 592, "y" : 189, "z" : 1, "border" : "TOTGLDW.bmp", "area" : "TZTGLDW.bmp" }, - "grail": { "animation" : "TBTWHOLY.def", "x" : 237, "y" : 14, "z" : -1, "border" : "TOTHOLYA.bmp", "area" : "TZTHOLYA.bmp" }, + "grail": { "animation" : "TBTWHOLY.def", "x" : 237, "y" : 14, "z" : -2, "border" : "TOTHOLYA.bmp", "area" : "TZTHOLYA.bmp" }, "dwellingLvl1": { "animation" : "TBTWDW_0.def", "x" : 453, "y" : 221, "z" : 1, "border" : "TOTGRM1A.bmp", "area" : "TZTGRM1A.bmp" }, "dwellingLvl2": { "animation" : "TBTWDW_1.def", "x" : 4, "y" : 46, "border" : "TOTGAR1.bmp", "area" : "TZTGAR1.bmp" }, "dwellingLvl3": { "animation" : "TBTWDW_2.def", "x" : 209, "y" : 177, "z" : 1, "border" : "TOTGOL1A.bmp", "area" : "TZTGOL1A.bmp" },