2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-15 06:06:10 +00:00

Various fixes

Add MLVL blend support (needs some minor refactoring)
Add MP2 MAPA Support
This commit is contained in:
2015-11-24 16:21:58 -08:00
parent 855337e8ca
commit 6f0c7851ea
5 changed files with 59 additions and 21 deletions

View File

@@ -154,24 +154,24 @@ void PAKBridge::build()
HECL::SNPrintf(num, 16, _S("%02u "), ai);
areaDeps.name = num + areaDeps.name;
const MLVL::LayerFlags& areaLayers = *layerFlagsIt++;
if (areaLayers.layerCount)
const MLVL::LayerFlags& layerFlags = *layerFlagsIt++;
if (layerFlags.layerCount)
{
areaDeps.layers.reserve(areaLayers.layerCount);
for (unsigned l=0 ; l<areaLayers.layerCount ; ++l)
areaDeps.layers.reserve(layerFlags.layerCount);
for (unsigned l=1 ; l<layerFlags.layerCount ; ++l)
{
areaDeps.layers.emplace_back();
Level::Area::Layer& layer = areaDeps.layers.back();
layer.name = LayerName(mlvl.layerNames[layerIdx++]);
layer.active = areaLayers.flags >> l & 0x1;
layer.active = layerFlags.flags >> (l-1) & 0x1;
/* Trim possible trailing whitespace */
#if HECL_UCS2
#if HECL_UCS2
while (layer.name.size() && iswspace(layer.name.back()))
layer.name.pop_back();
#else
#else
while (layer.name.size() && isspace(layer.name.back()))
layer.name.pop_back();
#endif
#endif
HECL::SNPrintf(num, 16, layer.active ? _S("%02ua ") : _S("%02u "), l-1);
layer.name = num + layer.name;
}
@@ -229,10 +229,10 @@ ResExtractor<PAKBridge> PAKBridge::LookupExtractor(const PAK::Entry& entry)
return {nullptr, CMDL::Extract, {_S(".blend")}, 1};
case SBIG('CHAR'):
return {nullptr, CHAR::Extract, {_S(".yaml"), _S(".blend")}, 2};
case SBIG('MREA'):
return {nullptr, MREA::Extract, {_S(".blend")}, 3};
case SBIG('MLVL'):
return {MLVL::Extract, nullptr, {_S(".yaml")}};
return {nullptr, MLVL::Extract, {_S(".blend")}, 3};
case SBIG('MREA'):
return {nullptr, MREA::Extract, {_S(".blend")}, 4};
}
return {};
}