diff --git a/zscript/firetexture_m/ft_baseclass.zsc b/zscript/firetexture_m/ft_baseclass.zsc index 0a60ea6..6917857 100644 --- a/zscript/firetexture_m/ft_baseclass.zsc +++ b/zscript/firetexture_m/ft_baseclass.zsc @@ -232,8 +232,8 @@ class FireTexture // prepare the lut for ( int i=0; i<256; i++ ) { - double x = pal[i].r+((pal[i].g/16)*256)%4096; - double y = (pal[i].g/16)+(pal[i].b*16); + double x = pal[i].r+((pal[i].g>>4)<<8)&4095; + double y = (pal[i].g>>4)+(pal[i].b<<4); blitterlut[i] = (x,y)/4096.+(1.,1.)/8192.; } } diff --git a/zscript/firetexture_m/ft_pixel.zsc b/zscript/firetexture_m/ft_pixel.zsc index 625c443..d96705f 100644 --- a/zscript/firetexture_m/ft_pixel.zsc +++ b/zscript/firetexture_m/ft_pixel.zsc @@ -13,6 +13,7 @@ extend class FireTexture private int renderheat; // overall intensity // direct pixel access wrapper functions + // not used by the Calc code, would reduce performance private uint GetPixel( uint x, uint y ) { // ensure coords are wrapped @@ -27,33 +28,74 @@ extend class FireTexture y &= vmask; pixels[x+y*width] = c; } - private Color GetPixelRGB( uint x, uint y ) - { - // ensure coords are wrapped - x &= umask; - y &= vmask; - return pal[pixels[x+y*width]]; - } - - private uint LookupFiretable( uint a, uint b, uint c, uint d ) - { - return firetable[min(a+b+c+d,1023)]; - } // heat propagation with bRising (triangle shifted two pixels down) private void CalcWrapFire() { uint mid, left, right, up; - for ( uint y=0; y