Calculate llFrand's min and max when possible

This commit is contained in:
Sei Lisa 2024-05-07 00:07:17 +02:00
parent 65326115d8
commit bf505220ac
8 changed files with 79 additions and 0 deletions

View file

@ -528,6 +528,12 @@ def OptimizeFunc(self, parent, index):
parent[index] = nr(nt='CONST', t='list', value=[], SEF=True) parent[index] = nr(nt='CONST', t='list', value=[], SEF=True)
return return
if name == 'llFrand' and child[0].nt == 'CONST':
# We can set a range when the input is a constant
value = child[0].value
node.min = lslfuncs.F32(min(value, 0) * 0.9999999403953552)
node.max = lslfuncs.F32(max(value, 0) * 0.9999999403953552)
def FuncOptSetup(): def FuncOptSetup():
# Patch the default values list for LSO # Patch the default values list for LSO
if lslcommon.LSO: if lslcommon.LSO:

View file

@ -1,3 +1,4 @@
// Test that there's at least one 7-digit number
[ llFrand(16777216) [ llFrand(16777216)
, llFrand(16777216) , llFrand(16777216)
, llFrand(16777216) , llFrand(16777216)

View file

@ -1,3 +1,4 @@
// Test that there's at least one 8-digit number
[ llFrand(16777216) [ llFrand(16777216)
, llFrand(16777216) , llFrand(16777216)
, llFrand(16777216) , llFrand(16777216)

View file

@ -0,0 +1,23 @@
[ llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
, llFrand(-5)
, llFrand(-5.0)
]

View file

@ -0,0 +1,3 @@
REGEX
(?:[\[,] -[0-4]\.[0-9]*
){22}\]

View file

@ -0,0 +1,20 @@
default { timer() {
llParticleSystem(
[ llFrand(-5)
, llFrand(-5) > -5
, llFrand(-5) <= 0
, llFrand(-5) > 0
, llFrand(-5.)
, llFrand(-16777216)
, llFrand(-16777216.)
, llFrand(5)
, llFrand(5) < 5
, llFrand(5) >= 0
, llFrand(5) < 0
, llFrand(5.)
, llFrand(16777216)
, llFrand(16777216.)
, llFrand(33554433)
, llFrand(33554433.)
]);
}}

View file

@ -0,0 +1,24 @@
default
{
timer()
{
llParticleSystem(
[ llFrand(((integer)-5))
, 1
, 1
, 0
, llFrand(((float)-5))
, llFrand(((integer)-16777216))
, llFrand(((float)-16777216))
, llFrand(5)
, 1
, 1
, 0
, llFrand(((float)5))
, llFrand(16777216)
, llFrand(((float)16777216))
, llFrand(33554433)
, llFrand(((float)33554432))
]);
}
}

View file

@ -0,0 +1 @@
main.py -O -listadd -