mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-21 00:19:29 +02:00
Fixed missing translation strings on loading campaign save
- campaign header now contains text container and stores campaign texts - map header now contains text container instead of inheriting it - moved text container registration logic to a wraper class - fixed registration of copied text containers (from copied map header)
This commit is contained in:
@ -264,11 +264,14 @@ void TextLocalizationContainer::registerStringOverride(const std::string & modCo
|
||||
|
||||
void TextLocalizationContainer::addSubContainer(const TextLocalizationContainer & container)
|
||||
{
|
||||
assert(!vstd::contains(subContainers, &container));
|
||||
subContainers.push_back(&container);
|
||||
}
|
||||
|
||||
void TextLocalizationContainer::removeSubContainer(const TextLocalizationContainer & container)
|
||||
{
|
||||
assert(vstd::contains(subContainers, &container));
|
||||
|
||||
subContainers.erase(std::remove(subContainers.begin(), subContainers.end(), &container), subContainers.end());
|
||||
}
|
||||
|
||||
@ -414,6 +417,28 @@ void TextLocalizationContainer::jsonSerialize(JsonNode & dest) const
|
||||
}
|
||||
}
|
||||
|
||||
TextContainerRegistrable::TextContainerRegistrable()
|
||||
{
|
||||
VLC->generaltexth->addSubContainer(*this);
|
||||
}
|
||||
|
||||
TextContainerRegistrable::~TextContainerRegistrable()
|
||||
{
|
||||
VLC->generaltexth->removeSubContainer(*this);
|
||||
}
|
||||
|
||||
TextContainerRegistrable::TextContainerRegistrable(const TextContainerRegistrable & other)
|
||||
: TextLocalizationContainer(other)
|
||||
{
|
||||
VLC->generaltexth->addSubContainer(*this);
|
||||
}
|
||||
|
||||
TextContainerRegistrable::TextContainerRegistrable(TextContainerRegistrable && other) noexcept
|
||||
:TextLocalizationContainer(other)
|
||||
{
|
||||
VLC->generaltexth->addSubContainer(*this);
|
||||
}
|
||||
|
||||
void CGeneralTextHandler::readToVector(const std::string & sourceID, const std::string & sourceName)
|
||||
{
|
||||
CLegacyConfigParser parser(TextPath::builtin(sourceName));
|
||||
|
Reference in New Issue
Block a user