Added <option1|option2|...> syntax to webGL

Fixes #493
This commit is contained in:
kkapsner 2022-02-15 19:53:58 +01:00
parent fb231a070b
commit 1bd87e6953
4 changed files with 42 additions and 28 deletions

View File

@ -145,6 +145,9 @@
case "{random renderer}": case "{random renderer}":
return webglRandom.getRandomRenderer(window); return webglRandom.getRandomRenderer(window);
} }
if (settingValue.startsWith("<") && settingValue.endsWith(">")){
return webglRandom.pickOneFromTree(settingValue, window);
}
return settingValue; return settingValue;
}, },
decimal: function(originalValue, definition, window){ decimal: function(originalValue, definition, window){

View File

@ -51,6 +51,35 @@
const vendor = scope.vendors[getRandomVendorIndex(window)]; const vendor = scope.vendors[getRandomVendorIndex(window)];
return vendor.renderers[getRandomRendererIndex(window)]; return vendor.renderers[getRandomRendererIndex(window)];
}; };
scope.pickOneFromTree = function pickOneFromTree(treeString, window){
function pickOne(string){
const options = [];
let cumulate = "";
let index = 0;
for (const l = string.length; index < l; index += 1){
const char = string.charAt(index);
if (char === "|"){
options.push(cumulate);
cumulate = "";
}
else if (char === "<"){
const subPick = pickOne(string.substring(index + 1));
cumulate += subPick.value;
index += 1 + subPick.endIndex;
}
else if (char === ">"){
break;
}
else {
cumulate += char;
}
}
options.push(cumulate);
const optionRng = randomSupply.getIndexRng(1, options.length, window);
return {value: options[optionRng(0)], endIndex: index};
}
return pickOne(treeString).value;
};
scope.vendors = [ scope.vendors = [
{ {
@ -93,34 +122,7 @@
return words[parseInt(index, 36)]; return words[parseInt(index, 36)];
} }
); );
return scope.pickOneFromTree(compressed, window);
function pickOne(string){
const options = [];
let cumulate = "";
let index = 0;
for (const l = string.length; index < l; index += 1){
const char = string.charAt(index);
if (char === "|"){
options.push(cumulate);
cumulate = "";
}
else if (char === "<"){
const subPick = pickOne(string.substring(index + 1));
cumulate += subPick.value;
index += 1 + subPick.endIndex;
}
else if (char === ">"){
break;
}
else {
cumulate += char;
}
}
options.push(cumulate);
const optionRng = randomSupply.getIndexRng(1, options.length, window);
return {value: options[optionRng(0)], endIndex: index};
}
return pickOne(compressed).value;
} }
}, },

View File

@ -6,6 +6,7 @@ Version 1.8:
- added SVG protection - added SVG protection
- added notice when dom.webAudio.enabled is set to false - added notice when dom.webAudio.enabled is set to false
- added {random vendor} and {random renderer} to UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL to use a random value from a given list - added {random vendor} and {random renderer} to UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL to use a random value from a given list
- added <option1|option2|...> syntax to UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL
fixes: fixes:
- errors in URL regular expressions broke CB - errors in URL regular expressions broke CB

View File

@ -213,6 +213,14 @@
{ {
"version": "1.8Alpha20220130", "version": "1.8Alpha20220130",
"update_link": "https://canvasblocker.kkapsner.de/versions/canvasblocker_beta-1.8Alpha20220130-an+fx.xpi" "update_link": "https://canvasblocker.kkapsner.de/versions/canvasblocker_beta-1.8Alpha20220130-an+fx.xpi"
},
{
"version": "1.8Alpha20220214",
"update_link": "https://canvasblocker.kkapsner.de/versions/canvasblocker_beta-1.8Alpha20220214-an+fx.xpi"
},
{
"version": "1.8Alpha20220215",
"update_link": "https://canvasblocker.kkapsner.de/versions/canvasblocker_beta-1.8Alpha20220215-an+fx.xpi"
} }
] ]
} }