Particles are blend mode.
I think 'scheduleDrawBlend(pos());' actually get called, as I added Log() into drawBlend() and check log output.
Code:
class OBJ: Game::Kinematic, BlendObject
{
virtual uint drawPrepare () {scheduleDrawBlend(pos()); return super.drawPrepare();}
virtual void drawBlend () {Log("SDFSDF"); particles.draw();}
}
I also test a bit with particles.renderMode()==RM_BLEND for possible palette particle mode.
Code:
virtual uint drawPrepare()
{
if(inter.particles.renderMode()==RM_BLEND) scheduleDrawBlend(pos());
return super::drawPrepare() | (inter.particles.renderMode()==RM_BLEND ? 0 : IndexToFlag(inter.particles.renderMode()));
}
also test drawBlend() with 'Game.Kinematic.drawBlend();' just in case
Code:
virtual void drawBlend() {Log("SDFSDF"); Game.Kinematic.drawBlend(); particles.draw();}
However nothing seems to work, Barrier object still sometimes draw over Crystal or vice versa, not sure about particle has to do with this but I temporary remove it from code it's still same.
By the way, I think I forget to mention that, these 2 objects are extended from Kinematic, create exactly at same position and are using only blend or blend light material mode.