i wrote a pixelshader which avoids the disadvantages of d3d_autotransparency.
you have to use a 32bit tga texture. all pixels with alpha values above 0.5 will be rendered completely opaque and all other pixels will be rendered completely transparent. it's possible to enable the z-buffer then, so you won't have any sorting errors!
currently it can't be used for sprites because shaders don't seem to work with them...
in my opinion it looks better than overlays looked in a5.24 because there are no jagged edges!
Code:
...
ZWriteEnable=true;
AlphaTestEnable=true;
...
PixelShader=
asm
{
ps.1.3
def c0,1,1,1,1
def c1,0,0,0,0
tex t0 // sample t0
mov r0,t0
cnd r0.a,r0.a,c0,c1 // if(r0.a>0.5){r0.a=1;}else{r0.a=0;}
mul r0.rgb,r0,v0 // modulate with diffuse vertex lighting
};
entities using this shader should have my.flare=off; and my.transparent=off; so that the engine won't unnecessarily sort them!
here is a screenshot: