forked from mirrors/0ad
Add a couple of string manipulation functions to globalscripts.
(And use them where appropriate.) This was SVN commit r21101.
This commit is contained in:
@@ -528,3 +528,12 @@ function calculateCarriedResources(carriedResources, tradingGoods)
|
||||
return resources;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove filter prefix (mirage, corpse, etc) from template name.
|
||||
*
|
||||
* ie. filter|dir/to/template -> dir/to/template
|
||||
*/
|
||||
function removeFiltersFromTemplateName(templateName)
|
||||
{
|
||||
return templateName.split("|").pop();
|
||||
}
|
||||
|
||||
@@ -58,7 +58,17 @@ function heapsPermute(array, cloneFunc, callback)
|
||||
*/
|
||||
function basename(path)
|
||||
{
|
||||
return path.slice(path.lastIndexOf("/") + 1);
|
||||
return path.split("/").pop();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the directories of a given path.
|
||||
*
|
||||
* ie. a/b/c/file.ext -> a/b/c
|
||||
*/
|
||||
function dirname(path)
|
||||
{
|
||||
return path.split("/").slice(0, -1).join("/");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,7 +31,7 @@ function setBiome(biomeID)
|
||||
|
||||
loadBiomeFile(biomeID);
|
||||
|
||||
Engine.LoadLibrary("rmbiome/" + biomeID.slice(0, biomeID.lastIndexOf("/")));
|
||||
Engine.LoadLibrary("rmbiome/" + dirname(biomeID));
|
||||
let setupBiomeFunc = global["setupBiome_" + basename(biomeID)];
|
||||
if (setupBiomeFunc)
|
||||
setupBiomeFunc();
|
||||
|
||||
@@ -233,7 +233,7 @@ BuildRestrictions.prototype.CheckPlacement = function()
|
||||
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
|
||||
|
||||
let templateName = cmpTemplateManager.GetCurrentTemplateName(this.entity);
|
||||
let template = cmpTemplateManager.GetTemplate(templateName.substr(templateName.lastIndexOf("|") + 1));
|
||||
let template = cmpTemplateManager.GetTemplate(removeFiltersFromTemplateName(templateName));
|
||||
|
||||
// Check distance restriction
|
||||
if (this.template.Distance)
|
||||
|
||||
@@ -35,9 +35,8 @@ SkirmishReplacer.prototype.ReplaceEntities = function()
|
||||
var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
|
||||
var templateName = cmpTemplateManager.GetCurrentTemplateName(this.entity);
|
||||
|
||||
let specialFilterPos = templateName.lastIndexOf("|") + 1;
|
||||
let specialFilters = templateName.substr(0, specialFilterPos);
|
||||
templateName = templateName.substr(specialFilterPos);
|
||||
let specialFilters = templateName.split("|").splice(0, -1).join("|");
|
||||
templateName = removeFiltersFromTemplateName(templateName);
|
||||
|
||||
if (templateName in replacementEntities)
|
||||
templateName = replacementEntities[templateName];
|
||||
|
||||
Reference in New Issue
Block a user