// User Defined Function // // LScript's method for writing floats, writeNumber(), is broken (v2.6) // getFloat returns 4 values that should be written sequentially with // the writeByte() method. They should be written in the order they're returned. // Special thanks to Ernie Wright and TAZ getFloat: x { if(x==0) { byte4=byte3=byte2=byte1=0; } else { lgx = log( abs( x )) / log( 2.0 ); e = floor( lgx ); m = floor(( pow( 2.0, lgx - e ) - 1.0 ) * 8388608 ); e += 127; byte4 = integer(m % 256); byte3 = integer(integer(m/256) % 256); byte2 = integer( (m / 65536) + 128 * ( e % 2 ) ); byte1 = integer(e / 2 + ( x < 0 ? 128 : 0 )); } return(byte4,byte3,byte2,byte1); }