1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00

Obstacles works fine without regression

This commit is contained in:
nordsoft 2022-08-28 05:06:41 +04:00
parent 9bb8f2a971
commit c3276f2276
6 changed files with 54 additions and 5 deletions

View File

@ -88,5 +88,9 @@
"battlefields":
[
"config/battlefields.json"
],
"obstacles":
[
"config/obstacles.json"
]
}

View File

@ -2,7 +2,7 @@
"type":"object",
"$schema": "http://json-schema.org/draft-04/schema",
"title" : "VCMI battlefield format",
"description" : "Format used to define new artifacts in VCMI",
"description" : "Format used to define new battlefields in VCMI",
"required" : [ "graphics" ],
"additionalProperties" : false,

View File

@ -0,0 +1,46 @@
{
"type":"object",
"$schema": "http://json-schema.org/draft-04/schema",
"title" : "VCMI obstacle format",
"description" : "Format used to define new obstacles in VCMI",
"required" : [ "defname" ],
"additionalProperties" : false,
"properties":{
"allowedTerrains": {
"type": "array",
"description": "Obstacles can be place on specified terrains only",
"items": { "type" : "string" }
},
"specialBattlefields": {
"type": "array",
"description": "Obstacles can be placed on specified specified battlefields",
"items": { "$ref" : "battlefield.json" }
},
"width": {
"type": "number",
"description": "Width ob obstacle"
},
"height": {
"type": "number",
"description": "height if obstacle"
},
"blockedTiles": {
"type": "array",
"description": "Blocked hexes - absolute or relative hex id",
"items": { "type" : "number" }
},
"defname": {
"type": "string",
"description": "Image resource"
},
"unknown": {
"type": "number",
"description": "Unknown field"
},
"absolute": {
"type": "boolean",
"description": "Should be used absulute or relative coordinates for obstacle. There is possible only one absolute obstacle"
}
}
}

View File

@ -10,6 +10,7 @@
#pragma once
#include <vcmi/EntityService.h>
#include <vcmi/Entity.h>
#include "HeroBonus.h"
#include "GameConstants.h"
#include "IHandlerBase.h"

View File

@ -23,7 +23,7 @@ int32_t ObstacleInfo::getIconIndex() const
const std::string & ObstacleInfo::getName() const
{
return name;
return identifier;
}
const std::string & ObstacleInfo::getJsonKey() const

View File

@ -22,13 +22,12 @@ struct DLL_LINKAGE ObstacleInfo : public EntityT<Obstacle>
{}
ObstacleInfo(Obstacle obstacle, std::string identifier)
: obstacle(obstacle), identifier(identifier), iconIndex(obstacle.getNum()), name(identifier), width(0), height(0), isAbsoluteObstacle(false)
: obstacle(obstacle), identifier(identifier), iconIndex(obstacle.getNum()), width(0), height(0), isAbsoluteObstacle(false)
{
}
Obstacle obstacle;
si32 iconIndex;
std::string name;
std::string identifier;
std::string defName;
std::vector<Terrain> allowedTerrains;
@ -53,7 +52,6 @@ struct DLL_LINKAGE ObstacleInfo : public EntityT<Obstacle>
{
h & obstacle;
h & iconIndex;
h & name;
h & identifier;
h & defName;
h & allowedTerrains;