Si lo que te interesa es bajar el numero de IFs lo que debes hacer es poner los valores que vayas a comprobar en un Array.
Y lo único que tienes que hacer es pasar con un bucle for o while la comprobación de cada IF, algo como esto:
[gml]
valores[0,0] = -128;
valores[0,1] = buffer_s8;
valores[1,0] = -32768;
valores[1,1] = buffer_s16;
for(g = 0; g < array_length_1d(valores); g++){
if(val >= valores[g,0]){
return valores[g,1];
}
}[/gml]
Al final es cuestión de buscar una solución a tanto if. De esa forma puedes ser todo lo escalable que quieras ser, puedes poner un montón de posibilidades de buffer. Tan sólo lo mapeas en el mismo array en la misma fila de valores.
Y lo único que tienes que hacer es pasar con un bucle for o while la comprobación de cada IF, algo como esto:
[gml]
valores[0,0] = -128;
valores[0,1] = buffer_s8;
valores[1,0] = -32768;
valores[1,1] = buffer_s16;
for(g = 0; g < array_length_1d(valores); g++){
if(val >= valores[g,0]){
return valores[g,1];
}
}[/gml]
Al final es cuestión de buscar una solución a tanto if. De esa forma puedes ser todo lo escalable que quieras ser, puedes poner un montón de posibilidades de buffer. Tan sólo lo mapeas en el mismo array en la misma fila de valores.