Yea I am using 3D plains too, using this code:
void PositionHudObject(int obj,int x,int y) {
float cameraFOV=61.9621391296;
float zDist=((float)dbScreenHeight()/2)/dbTan((float)cameraFOV/2);
int BaseX=0-dbScreenWidth()/2;
int BaseY=dbScreenHeight()/2;
float cpx=dbCameraPositionX();
float cpy=dbCameraPositionY();
float cpz=dbCameraPositionZ();
//dbMakeObjectPlain(obj,width,height);
dbPositionObject(obj,cpx,cpy,cpz);
dbSetObjectToCameraOrientation(obj);
dbTurnObjectLeft(obj,180);
dbMoveObject(obj,zDist*-1);
dbMoveObjectLeft(obj,BaseX+x+(dbObjectSizeX(obj)/2));
dbMoveObjectUp(obj,BaseY-y-(dbObjectSizeY(obj)/2));
dbDisableObjectZDepth(obj);
dbSetObjectFilter(obj,0);
dbSetObjectLight(obj,0);
dbSetObjectTransparency(obj,1);
}
But it still gives me the problem of position and sizing the plain on different resolutions