Difference between revisions of "Town Format"

From VCMI Project Wiki
Jump to: navigation, search
(Current config structure: One missing detail - icons)
(Replaced content with "{{Template:MovedToWebpage|https://vcmi.eu/modders/Entities_Format/Faction_Format/}}")
 
(40 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Current version of town description format.
+
{{Template:MovedToWebpage|https://vcmi.eu/modders/Entities_Format/Faction_Format/}}
 
 
= Remaining tasks =
 
* Remove usage of numeric ID's. Long-term goal due to heavy usage of id's in VCMI code.
 
* Determine location of name and descriptions (buildings or structures)
 
* Collect any remaining hardcoded data
 
 
 
== Split faction description from town description ==
 
Currently there is no separation between "faction" and "town" concepts.
 
This results in several issues:
 
* Neutral creatures have invalid faction - no town with such description is present
 
* Loading towns requires creatures and loading creatures requires towns
 
 
 
This should be split into several parts:
 
* faction: stores all information that can be separated from town (e.g. puzzle map, hero classes, creatures)
 
* town: stores only information required for town (e.g. buildings and recruitable creatures)
 
* (optional) town gui: separate structure will all gui-specific data (e.g. structures)
 
 
 
== Merge in remaining json configs ==
 
* (DONE) buildings.json (used as base for this configuration)
 
* (DONE) creatures_backgrounds.json
 
* (DONE) hall.json
 
* (DONE) town_pictures.json
 
* (DONE) towns_defs.json
 
* (DONE) wall_pos.json (needs removing hardcoded name)
 
* puzzle_map.json (needs removing hardcoded name)
 
* commanders.json (leave it as it?)
 
* terrains.json (movement speed should be left in terrain configuration I think)
 
 
 
== Merge in data from HoMM3 txt files ==
 
* BldgNeut.txt
 
* BldgSpec.txt
 
* Dwelling.txt
 
* (DONE) Building.txt
 
* (DONE) TownName.txt
 
* (DONE) TownType.txt
 
 
 
= Current config structure =
 
<pre>
 
{
 
"adventureMap" : // adventure map object animations
 
{
 
"village": "",
 
"castle" : "", // town with fortifications
 
"capitol": "", // town with both fort and capitol
 
},
 
"icons" : //icons, small and big. Built versions indicate constructed during this turn building.
 
{
 
"small" : "",
 
"smallBuilt" : "",
 
"big" : "",
 
"bigBuilt" : "",
 
},
 
"structures" : // Structures. Represents visible graphical objects on town screen.
 
[
 
{ "id" : -1, "animation" : "", "x" : 0, "y" : 0, "z" : 0 },
 
{ "id" : 0,  "animation" : "", "x" : 0, "y" : 0, "z" : 0, "border" : "", "area" : "" },
 
{ "id" : 1,  "animation" : "", "x" : 0, "y" : 0, "z" : 0, "border" : "", "area" : "" },
 
{ "id" : 2,  "animation" : "", "x" : 0, "y" : 0, "z" : 0, "border" : "", "area" : "" },
 
{ "id" : 3,  "animation" : "", "x" : 0, "y" : 0, "z" : 0, "border" : "", "area" : "" },
 
{ "id" : 18, "animation" : "", "x" : 0, "y" : 0, "z" : 0, "border" : "", "area" : "" },
 
{ "id" : 19, "animation" : "", "x" : 0, "y" : 0, "z" : 0, "border" : "", "area" : "",
 
// optional, structure will completely replace these buildings, default = empty
 
            "replaces" : [37, 18],
 
// list of buildings required for this structure to appear, default = [ id ]
 
            "requires" : [37, 18]
 
// optional, selecting this structure in town hall will create this building, default = id
 
            "provides" : 18,
 
// should be temporary workaround until we get GUI scripting.
 
// Needed for dock in Castle and mana whirpool in Dungeon:
 
// these two buildings have two sets of animation with second one used after building of specific structure
 
            "altAnim" : { "building" : 8, "group" : 1}
 
],
 
"townName" : "", // localized town name.
 
"townNames" : [ "", ""], // list of names for towns on adventure map
 
"townBackground": "", // backgound scenery
 
"guildWindow": "", // mages guild window
 
 
 
"buildingsIcons": "HALLCSTL.DEF", // Not sure what to do with this
 
 
 
"hallBackground": "", // Background image for town hall window
 
"hallSlots": // list of buildings available in each slot of town hall window
 
[
 
[ [ 10, 11, 12, 13 ], [ 7, 8, 9 ], [ 5, 22 ], [ 16 ] ],
 
[ [ 14, 15 ], [ 0, 1, 2, 3 ], [ 6, 17 ] ],
 
[ [ 21 ], [ 18, 19 ] ],
 
[ [ 30, 37 ], [ 31, 38 ], [ 32, 39 ], [ 33, 40 ] ],
 
[ [ 34, 41 ], [ 35, 42 ], [ 36, 43 ] ]
 
],
 
"creatures" : [ [0, 1], [2, 3] ], // List of creatures available on each tier
 
 
"creatureBackground"
 
{
 
"120px" : "",
 
"130px" : ""
 
},
 
 
 
"buildings" : // Buildings, objects in town that affect available options
 
[
 
{ "id" : 0 },
 
{ "id" : 1,  "upgrades" : [ 0 ], "cost" : { "gold" : 1000} },
 
{ "id" : 2,  "upgrades" : [ 1 ] },  // 5-levels mage guild
 
{ "id" : 3,  "upgrades" : [ 2 ] },
 
{ "id" : 4,  "upgrades" : [ 3 ] },
 
{ "id" : 18 },                      // creature horde, hardcoded ID for now
 
{ "id" : 30, "requires" : [ 7 ] }  // dwelling
 
{ "id" : 37, "upgrades" : [ 30 ] }, // dwelling upgrade
 
],
 
"siege"
 
{
 
"towers":
 
{
 
"top" :
 
{
 
"tower" : { "x": 0, "y": 0 },
 
"battlement" : { "x": 0, "y": 0 },
 
"creature" : { "x": 0, "y": 0 },
 
"shooter" : { "name" : "", "cropHeight" : 0}
 
},
 
"keep" : { ... },
 
"bottom" : { ... }
 
},
 
"gate" :
 
{
 
"upperWall" : { "x": 0, "y": 0 },
 
"bottomWall": { "x": 0, "y": 0 },
 
 
"gate" : { "x": 0, "y": 0 },
 
"arch" : { "x": 0, "y": 0 }
 
}
 
"walls" :
 
{
 
"upper" : { "x": 0, "y": 0 },
 
"upperMid" : { "x": 0, "y": 0 },
 
"bottomMid" : { "x": 0, "y": 0 },
 
"bottom" : { "x": 0, "y": 0 }
 
}
 
"moat" : { "x": 0, "y": 0 },
 
"static"
 
{
 
"bottom" : { "x": 0, "y": 0 },
 
"top" : { "x": 0, "y": 0 },
 
"background" : { "x": 0, "y": 0 }
 
}
 
}
 
 
 
// Entries that should be replaced with autodetection
 
 
 
"horde" : [ 2, -1 ], // Which tiers in this town have creature hordes
 
"primary_resource" : 127, // Resource produced by resource silo, 127 = wood + ore
 
"mage_guild" : 4, // maximum level of mages guild
 
"war_machine" : 4, // war machine produced in town
 
}
 
</pre>
 

Latest revision as of 16:26, 16 July 2024

Logo256.png    Page moved to VCMI-Homepage