From 018127b23613aef1f0fdca65111ff3a920d5215d Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Sat, 29 Jun 2024 14:01:25 +0200 Subject: [PATCH] set values for map editor and rmg --- config/widgets/mapOverview.json | 2 +- docs/modders/Campaign_Format.md | 8 ++++++++ lib/campaign/CampaignHandler.cpp | 4 ++-- lib/campaign/CampaignState.h | 4 ++-- lib/rmg/CMapGenerator.cpp | 7 +++++++ mapeditor/windownewmap.cpp | 1 + 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/config/widgets/mapOverview.json b/config/widgets/mapOverview.json index 93b536906..24c87ff37 100644 --- a/config/widgets/mapOverview.json +++ b/config/widgets/mapOverview.json @@ -41,7 +41,7 @@ "alignment": "right", "color": "green", "text": "", - "position": {"x": 418, "y": 40} + "position": {"x": 418, "y": 48} }, { "type": "boxWithBackground", diff --git a/docs/modders/Campaign_Format.md b/docs/modders/Campaign_Format.md index d41713144..e020531cd 100644 --- a/docs/modders/Campaign_Format.md +++ b/docs/modders/Campaign_Format.md @@ -35,12 +35,20 @@ In header are parameters describing campaign properties "regions": {...}, "name": "Campaign name", "description": "Campaign description", + "author": "Author", + "authorContact": "Author contact", + "campaignVersion": "Campaign version", + "creationDateTime": "Creation date and time", "allowDifficultySelection": true, ``` - `"regions"` contains information about background and regions. See section [campaign regions](#regions-description) for more information - `"name"` is a human readable title of campaign - `"description"` is a human readable description of campaign +- `"author"` is the author of the campaign +- `"authorContact"` is a contact address for the author (e.g. email) +- `"campaignVersion"` is creator defined version +- `"creationDateTime"` unix time of campaign creation - `"allowDifficultySelection"` is a boolean field (`true`/`false`) which allows or disallows to choose difficulty before scenario start # Scenario description diff --git a/lib/campaign/CampaignHandler.cpp b/lib/campaign/CampaignHandler.cpp index 686dbe982..f4099a827 100644 --- a/lib/campaign/CampaignHandler.cpp +++ b/lib/campaign/CampaignHandler.cpp @@ -153,7 +153,7 @@ void CampaignHandler::readHeaderFromJson(CampaignHeader & ret, JsonNode & reader ret.description.appendTextID(reader["description"].String()); ret.author.appendRawString(reader["author"].String()); ret.authorContact.appendRawString(reader["authorContact"].String()); - ret.mapVersion.appendRawString(reader["mapVersion"].String()); + ret.campaignVersion.appendRawString(reader["campaignVersion"].String()); ret.creationDateTime = reader["creationDateTime"].Integer(); ret.difficultyChosenByPlayer = reader["allowDifficultySelection"].Bool(); ret.music = AudioPath::fromJson(reader["music"]); @@ -391,7 +391,7 @@ void CampaignHandler::readHeaderFromMemory( CampaignHeader & ret, CBinaryReader ret.description.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "description")); ret.author.appendRawString(""); ret.authorContact.appendRawString(""); - ret.mapVersion.appendRawString(""); + ret.campaignVersion.appendRawString(""); ret.creationDateTime = 0; if (ret.version > CampaignVersion::RoE) ret.difficultyChosenByPlayer = reader.readInt8(); diff --git a/lib/campaign/CampaignState.h b/lib/campaign/CampaignState.h index a24383618..231fecef6 100644 --- a/lib/campaign/CampaignState.h +++ b/lib/campaign/CampaignState.h @@ -83,7 +83,7 @@ class DLL_LINKAGE CampaignHeader : public boost::noncopyable MetaString description; MetaString author; MetaString authorContact; - MetaString mapVersion; + MetaString campaignVersion; std::time_t creationDateTime; AudioPath music; std::string filename; @@ -122,7 +122,7 @@ public: { h & author; h & authorContact; - h & mapVersion; + h & campaignVersion; h & creationDateTime; } h & difficultyChosenByPlayer; diff --git a/lib/rmg/CMapGenerator.cpp b/lib/rmg/CMapGenerator.cpp index 8bf067f49..d7d41aa2e 100644 --- a/lib/rmg/CMapGenerator.cpp +++ b/lib/rmg/CMapGenerator.cpp @@ -137,6 +137,13 @@ std::unique_ptr CMapGenerator::generate() throw; } Load::Progress::finish(); + + map->mapInstance->creationDateTime = std::time(nullptr); + map->mapInstance->author = MetaString::createFromTextID("core.genrltxt.740"); + const auto * mapTemplate = mapGenOptions.getMapTemplate(); + if(mapTemplate) + map->mapInstance->mapVersion = MetaString::createFromRawString(mapTemplate->getName()); + return std::move(map->mapInstance); } diff --git a/mapeditor/windownewmap.cpp b/mapeditor/windownewmap.cpp index 6f2ce83d6..75aad118a 100644 --- a/mapeditor/windownewmap.cpp +++ b/mapeditor/windownewmap.cpp @@ -201,6 +201,7 @@ std::unique_ptr generateEmptyMap(CMapGenOptions & options) { auto map = std::make_unique(nullptr); map->version = EMapFormat::VCMI; + map->creationDateTime = std::time(nullptr); map->width = options.getWidth(); map->height = options.getHeight(); map->twoLevel = options.getHasTwoLevels();