specify map folders in mod.yaml

closes #3544
This commit is contained in:
Matthias Mailänder
2013-10-07 00:10:55 +02:00
parent ee9b64595a
commit 32851e624c
6 changed files with 15 additions and 31 deletions

View File

@@ -37,9 +37,10 @@ namespace OpenRA
if (!Directory.Exists(dir))
return noMaps;
return Directory.GetDirectories(dir)
.Concat(Directory.GetFiles(dir, "*.zip"))
.Concat(Directory.GetFiles(dir, "*.oramap"));
var dirsWithMaps = Directory.GetDirectories(dir)
.Where(d => Directory.GetFiles(d, "map.yaml").Any() && Directory.GetFiles(d, "map.bin").Any());
return dirsWithMaps.Concat(Directory.GetFiles(dir, "*.oramap"));
}
public ModData(params string[] mods)
@@ -52,7 +53,7 @@ namespace OpenRA
LoadScreen.Display();
WidgetLoader = new WidgetLoader(this);
AvailableMaps = FindMaps(Manifest.Mods);
AvailableMaps = FindMaps();
// HACK: Mount only local folders so we have a half-working environment for the asset installer
FileSystem.UnmountAll();
@@ -138,10 +139,9 @@ namespace OpenRA
return map;
}
Dictionary<string, Map> FindMaps(string[] mods)
Dictionary<string, Map> FindMaps()
{
var paths = mods.SelectMany(p => FindMapsIn("mods{0}{1}{0}maps{0}".F(Path.DirectorySeparatorChar, p)))
.Concat(mods.SelectMany(p => FindMapsIn("{1}maps{0}{2}{0}".F(Path.DirectorySeparatorChar, Platform.SupportDir, p))));
var paths = Manifest.Folders.SelectMany(f => FindMapsIn(f));
var ret = new Dictionary<string, Map>();

View File

@@ -8,8 +8,10 @@ Folders:
.
./mods/cnc
./mods/cnc/bits
./mods/cnc/maps
./mods/cnc/uibits
~^/Content/cnc
~^/maps/cnc
Packages:
overrides.mix

View File

@@ -8,11 +8,13 @@ Folders:
.
./mods/d2k
./mods/d2k/bits
./mods/d2k/maps
./mods/d2k/uibits
./mods/ra/uibits
~^/Content/d2k
~^/Content/d2k/GAMESFX
~^/Content/d2k/Music
~^/maps/d2k
Packages:
SOUND.RS

View File

@@ -1,24 +0,0 @@
crate:
idle: DATA.R8
Start: 102
ZOffset: -511
Offset: -16,-16
land: DATA.R8
Start: 102
ZOffset: -511
Offset: -16,-16
spicebloom:
make: DATA.R8
Start: 107
Length: 3
Offset: -16,-16
active: DATA.R8
Start: 109
Length: 1
ZOffset: -511
Offset: -16,-16
idle: DATA.R8
Start: 109
ZOffset: -511
Offset: -16,-16

View File

@@ -9,8 +9,10 @@ Folders:
./mods/ra
./mods/ra/bits
./mods/ra/bits/desert
./mods/ra/maps
./mods/ra/uibits
~^/Content/ra
~^/maps/ra
Packages:
~main.mix

View File

@@ -9,8 +9,10 @@ Folders:
# Tiberian Sun
./mods/ts
./mods/ts/bits
./mods/ts/maps
./mods/ts/uibits
~^/Content/ts
~^/maps/ts
# Red Alert
./mods/ra/uibits