The app would be restricted to missions created with the OP2 Mission Editor as DLLs are a security risk.
A custom mission database that disallows 100% of all custom missions created up until now? Why bother? No disrespect but while your new editor has an impressive UI and is far more stable than the old OP2Mapper ever was and will be great for setting up quick little skirmish maps, I doubt it will ever be able to replace the way we do things now. How would you implement something like this through your script editor?
// Propagators effect
Unit P;
PlayerVehicleEnum Propagate(6);
while (Propagate.GetNext(P))
{
if (P.GetType() == mapScorpion)
{
// Get all player-owned units adjacent to the current Scorpion
Unit newP;
LOCATION ploc = P.Location();
LOCATION Adjacent[8] = {LOCATION(ploc.x-1,ploc.y-1),
LOCATION(ploc.x ,ploc.y-1),
LOCATION(ploc.x+1,ploc.y-1),
LOCATION(ploc.x-1,ploc.y ),
LOCATION(ploc.x+1,ploc.y-1),
LOCATION(ploc.x-1,ploc.y+1),
LOCATION(ploc.x ,ploc.y+1),
LOCATION(ploc.x+1,ploc.y+1)};
for (int i = 0; i < 8; i++)
{
int pCType = GameMapEx::GetTileEx(Adjacent[i]).cellType;
if (pCType == cellNormalWall ||
pCType == cellMicrobeWall ||
pCType == cellLavaWall)
{
GameMapEx::GetTileEx(Adjacent[i]).wallOrBuilding = 0;
GameMapEx::SetCellType(Adjacent[i],cellDozedArea);
TethysGame::CreateUnit(newP, mapScorpion, Adjacent[i], 6, mapEnergyCannon, 0);
newP.DoSetLights(1);
}
else
{
UnitEx ontile;
ontile.unitID = GameMapEx::GetTileEx(Adjacent[i]).unitIndex;
if (ontile.unitID != 0 && ontile.OwnerID() != 6 && ontile.IsLive())
{
if (ontile.IsVehicle())
{
ontile.DoPoof();
TethysGame::CreateUnit(newP, mapScorpion, Adjacent[i], 6, mapEnergyCannon, 0);
newP.DoSetLights(1);
}
}
}
}
}
}