Compare commits
2 Commits
6abc9a1e29
...
30a63187ab
Author | SHA1 | Date | |
---|---|---|---|
30a63187ab | |||
1b86fc70fd |
@ -4,11 +4,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
setBiome("generic/savanna");
|
||||
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
// Pick some biome defaults and overload a few settings.
|
||||
const tPrimary = g_Terrains.mainTerrain;
|
||||
|
@ -4,8 +4,8 @@ Engine.LoadLibrary("rmgen-common");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome(mapSettings.Biome ?? "alpine/winter");
|
||||
const isLateSpringBiome = mapSettings.Biome !== "alpine/winter";
|
||||
setBiome(mapSettings.Biome);
|
||||
const isLateSpringBiome = mapSettings.Biome === "alpine/late_spring";
|
||||
|
||||
setFogThickness(isLateSpringBiome ? 0.26 : 0.19);
|
||||
setFogFactor(isLateSpringBiome ? 0.4 : 0.35);
|
||||
|
@ -236,7 +236,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function*(map)
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setBiome(mapSettings.Biome ?? "alpine/winter");
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const heightLand = 3;
|
||||
const heightOffsetBump = 2;
|
||||
|
@ -5,7 +5,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const heightLand = 2;
|
||||
|
||||
|
@ -2,11 +2,11 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const biomeTweaks = Engine.ReadJSONFile("maps/random/archipelago_biome_tweaks.json");
|
||||
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tPrimary = g_Terrains.mainTerrain;
|
||||
const tGrass = [g_Terrains.tier1Terrain, g_Terrains.tier2Terrain];
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
|
@ -3,9 +3,9 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
globalThis.g_Map = new RandomMap(2, g_Terrains.mainTerrain);
|
||||
|
||||
|
@ -4,10 +4,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
setBiome("fields_of_meroe/dry");
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainDirt = g_Terrains.mainDirt;
|
||||
const tSecondaryDirt = g_Terrains.secondaryDirt;
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -5,7 +5,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
// Random elevation with a bias towards lower elevations
|
||||
let randElevation = randIntInclusive(0, 29);
|
||||
|
@ -2,11 +2,11 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -6,11 +6,7 @@ function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
// TODO: Replace ugly default for atlas by a dropdown
|
||||
setBiome("gulf_of_bothnia/winter");
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const isLakeFrozen = g_Environment.Water.Frozen;
|
||||
|
||||
|
@ -3,9 +3,9 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const heightSeaGround = -18;
|
||||
const heightLand = 2;
|
||||
|
@ -3,9 +3,9 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const heightLand = 1;
|
||||
const heightBarrier = 30;
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tPrimary = g_Terrains.mainTerrain;
|
||||
const tGrass = g_Terrains.tier1Terrain;
|
||||
|
@ -3,12 +3,12 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
const g_InitialMineDistance = 14;
|
||||
const g_InitialTrees = 50;
|
||||
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -2,11 +2,11 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -3,9 +3,9 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const topTerrain = g_Terrains.tier2Terrain;
|
||||
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -4,11 +4,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
setBiome("generic/sahara");
|
||||
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tPrimary = g_Terrains.mainTerrain;
|
||||
const tCity = g_Terrains.roadWild;
|
||||
|
@ -4,11 +4,7 @@ Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
if (mapSettings.Biome)
|
||||
setSelectedBiome();
|
||||
else
|
||||
// TODO: Replace ugly default for atlas by a dropdown
|
||||
setBiome("persian_highlands/summer");
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tDirtMain = g_Terrains.mainTerrain;
|
||||
const tCity = g_Terrains.road;
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -11,12 +11,6 @@ function currentBiome()
|
||||
return g_BiomeID;
|
||||
}
|
||||
|
||||
function setSelectedBiome()
|
||||
{
|
||||
// TODO: Replace ugly default for atlas by a dropdown
|
||||
setBiome(g_MapSettings.Biome || "generic/alpine");
|
||||
}
|
||||
|
||||
function setBiome(biomeID)
|
||||
{
|
||||
RandomMapLogger.prototype.printDirectly("Setting biome " + biomeID + ".\n");
|
||||
|
@ -2,11 +2,11 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -3,9 +3,9 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmgen2");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const heightLand = 30;
|
||||
|
||||
|
@ -2,9 +2,9 @@ Engine.LoadLibrary("rmgen");
|
||||
Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -6,7 +6,7 @@ function* GenerateMap(mapSettings)
|
||||
{
|
||||
TILE_CENTERED_HEIGHT_MAP = true;
|
||||
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
const tMainTerrain = g_Terrains.mainTerrain;
|
||||
const tForestFloor1 = g_Terrains.forestFloor1;
|
||||
|
@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
|
||||
Engine.LoadLibrary("rmbiome");
|
||||
Engine.LoadLibrary("heightmap");
|
||||
|
||||
function* GenerateMap()
|
||||
function* GenerateMap(mapSettings)
|
||||
{
|
||||
globalThis.g_Map = new RandomMap(0, "whiteness");
|
||||
|
||||
@ -17,7 +17,7 @@ function* GenerateMap()
|
||||
return stringOrArrayOfStrings;
|
||||
}
|
||||
|
||||
setSelectedBiome();
|
||||
setBiome(mapSettings.Biome);
|
||||
|
||||
// Terrain, entities and actors
|
||||
const wildLakeBiome = [
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2023 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@ -29,8 +29,10 @@
|
||||
#include <algorithm>
|
||||
#include <ctime>
|
||||
#include <random>
|
||||
#include <string>
|
||||
#include <wx/busyinfo.h>
|
||||
#include <wx/filename.h>
|
||||
#include <vector>
|
||||
|
||||
#define CREATE_CHECKBOX(window, parentSizer, name, description, ID) \
|
||||
parentSizer->Add(new wxStaticText(window, wxID_ANY, _(name)), wxSizerFlags().Align(wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT)); \
|
||||
@ -51,6 +53,7 @@ enum
|
||||
ID_MapKW_Trigger,
|
||||
ID_RandomScript,
|
||||
ID_RandomSize,
|
||||
ID_RandomBiome,
|
||||
ID_RandomNomad,
|
||||
ID_RandomSeed,
|
||||
ID_RandomReseed,
|
||||
@ -468,6 +471,10 @@ MapSidebar::MapSidebar(ScenarioEditor& scenarioEditor, wxWindow* sidebarContaine
|
||||
wxFlexGridSizer* gridSizer = new wxFlexGridSizer(2, 5, 5);
|
||||
gridSizer->AddGrowableCol(1);
|
||||
|
||||
gridSizer->Add(new wxStaticText(scrolledWindow, wxID_ANY, _("Biome")),
|
||||
wxSizerFlags().Align(wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT));
|
||||
gridSizer->Add(new wxChoice(scrolledWindow, ID_RandomBiome), wxSizerFlags().Expand());
|
||||
|
||||
wxChoice* sizeChoice = new wxChoice(scrolledWindow, ID_RandomSize);
|
||||
gridSizer->Add(new wxStaticText(scrolledWindow, wxID_ANY, _("Map size")), wxSizerFlags().Align(wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT));
|
||||
gridSizer->Add(sizeChoice, wxSizerFlags().Expand());
|
||||
@ -669,6 +676,41 @@ void MapSidebar::OnSimReset(wxCommandEvent& WXUNUSED(event))
|
||||
UpdateSimButtons();
|
||||
}
|
||||
|
||||
void MapSidebar::OnRandomScript(wxCommandEvent& WXUNUSED(evt))
|
||||
{
|
||||
wxChoice* biomeChoice = wxDynamicCast(FindWindow(ID_RandomBiome), wxChoice);
|
||||
wxChoice* scriptChoice = wxDynamicCast(FindWindow(ID_RandomScript), wxChoice);
|
||||
|
||||
if (scriptChoice->GetSelection() < 0)
|
||||
return;
|
||||
|
||||
biomeChoice->Clear();
|
||||
|
||||
AtObj mapSettings = dynamic_cast<AtObjClientData*>(scriptChoice->GetClientObject(
|
||||
scriptChoice->GetSelection()))->GetValue();
|
||||
std::vector<std::string> biomes;
|
||||
if (mapSettings["SupportedBiomes"]["@array"].defined())
|
||||
{
|
||||
for (AtIter it = mapSettings["SupportedBiomes"]["item"]; it.defined(); ++it)
|
||||
biomes.push_back(static_cast<const char*>(*it));
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string singleBiome{static_cast<const char*>(*mapSettings["SupportedBiomes"])};
|
||||
if (!singleBiome.empty())
|
||||
biomes.push_back(singleBiome);
|
||||
}
|
||||
AtlasMessage::qExpandBiomes qry;
|
||||
qry.biomes = std::move(biomes);
|
||||
qry.Post();
|
||||
biomes = *qry.biomes;
|
||||
|
||||
for (const std::string& biome : biomes)
|
||||
biomeChoice->Append(wxString::FromUTF8(biome.c_str()));
|
||||
|
||||
biomeChoice->SetSelection(0);
|
||||
}
|
||||
|
||||
void MapSidebar::OnRandomReseed(wxCommandEvent& WXUNUSED(evt))
|
||||
{
|
||||
std::mt19937 engine(std::time(nullptr));
|
||||
@ -708,6 +750,10 @@ void MapSidebar::OnRandomGenerate(wxCommandEvent& WXUNUSED(evt))
|
||||
|
||||
settings.setInt("Seed", wxAtoi(wxDynamicCast(FindWindow(ID_RandomSeed), wxTextCtrl)->GetValue()));
|
||||
|
||||
wxChoice* biomeChoice = wxDynamicCast(FindWindow(ID_RandomBiome), wxChoice);
|
||||
wxString biome = biomeChoice->GetString(biomeChoice->GetSelection());
|
||||
settings.set("Biome", biome.utf8_str());
|
||||
|
||||
std::string json = AtlasObject::SaveToJSON(settings);
|
||||
|
||||
wxBusyInfo busy(_("Generating map"));
|
||||
@ -764,4 +810,5 @@ BEGIN_EVENT_TABLE(MapSidebar, Sidebar)
|
||||
EVT_BUTTON(ID_RandomGenerate, MapSidebar::OnRandomGenerate)
|
||||
EVT_BUTTON(ID_ResizeMap, MapSidebar::OnResizeMap)
|
||||
EVT_BUTTON(ID_OpenPlayerPanel, MapSidebar::OnOpenPlayerPanel)
|
||||
EVT_CHOICE(ID_RandomScript, MapSidebar::OnRandomScript)
|
||||
END_EVENT_TABLE();
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2020 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@ -36,6 +36,7 @@ private:
|
||||
|
||||
void OnCollapse(wxCollapsiblePaneEvent& evt);
|
||||
void OnOpenPlayerPanel(wxCommandEvent& evt);
|
||||
void OnRandomScript(wxCommandEvent& evt);
|
||||
void OnRandomReseed(wxCommandEvent& evt);
|
||||
void OnRandomGenerate(wxCommandEvent& evt);
|
||||
void OnResizeMap(wxCommandEvent& evt);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2023 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@ -57,6 +57,9 @@
|
||||
#include "simulation2/components/ICmpVisual.h"
|
||||
#include "simulation2/system/ParamNode.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable: 4458) // Declaration hides class member.
|
||||
@ -357,6 +360,41 @@ QUERYHANDLER(GetRMSData)
|
||||
msg->data = g_Game->GetSimulation2()->GetRMSData();
|
||||
}
|
||||
|
||||
QUERYHANDLER(ExpandBiomes)
|
||||
{
|
||||
std::vector<std::string> unexpandedBiomes = *msg->biomes;
|
||||
std::vector<std::string> expandedBiomes;
|
||||
for (const std::string& toExpand : unexpandedBiomes)
|
||||
{
|
||||
if (toExpand.empty())
|
||||
{
|
||||
LOGERROR("Got an empty biome");
|
||||
continue;
|
||||
}
|
||||
if (toExpand.back() != '/')
|
||||
{
|
||||
expandedBiomes.push_back(toExpand);
|
||||
continue;
|
||||
}
|
||||
|
||||
VfsPaths biomesList;
|
||||
if (vfs::GetPathnames(g_VFS, "maps/random/rmbiome/" + toExpand, L"*.json", biomesList) ==
|
||||
INFO::OK)
|
||||
{
|
||||
std::transform(biomesList.begin(), biomesList.end(), std::back_inserter(expandedBiomes),
|
||||
[&](const VfsPath& biome)
|
||||
{
|
||||
return toExpand + biome.Basename().string8();
|
||||
});
|
||||
}
|
||||
else
|
||||
LOGERROR("Error reading biome files in %s", toExpand);
|
||||
|
||||
}
|
||||
|
||||
msg->biomes = std::move(expandedBiomes);
|
||||
}
|
||||
|
||||
QUERYHANDLER(GetCurrentMapSize)
|
||||
{
|
||||
msg->size = g_Game->GetWorld()->GetTerrain().GetTilesPerSide();
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2023 Wildfire Games.
|
||||
/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@ -222,6 +222,11 @@ QUERY(GetRMSData,
|
||||
((std::vector<std::string>, data))
|
||||
);
|
||||
|
||||
QUERY(ExpandBiomes,
|
||||
,
|
||||
((std::vector<std::string>, biomes))
|
||||
);
|
||||
|
||||
COMMAND(ResizeMap, NOMERGE,
|
||||
((int, tiles))
|
||||
((int, offsetX))
|
||||
|
Loading…
Reference in New Issue
Block a user