Here is a function to make a plain with correct UV and normal data since DBP's uv's are mirrored and it's normals inverted. You cannot tell because by default plains are yrotated to 180 and their culling is turned off. You are actually looking at the back of the plain be default. And you cannot turn on culling to gain speed for them or they will look odd.
function make_plain( object, sizex#, sizey# )
make memblock 1, 204
`write fvf format
write memblock dword 1, 0, 274
`write size of each vert
write memblock dword 1, 4, 32
`write number of verts
write memblock dword 1, 8, 6
`vert 3d position placeholders
pos_pos_x# = (sizex#/2.0)
neg_pos_x# = 0-(sizex#/2.0)
pos_pos_y# = (sizey#/2.0)
neg_pos_y# = 0-(sizey#/2.0)
`vert memblock placeholder
a = 12
`writa all 6 verts' data in clockwise order
for i = 1 to 6
`select data to write depending on poly number
select i
`if poly 1 write top left corner data of plain
case 1
x_pos# = neg_pos_x#
y_pos# = pos_pos_y#
z_pos# = 0
u_data# = 0
v_data# = 0
endcase
`if poly 2 write top right corner data of plain
case 2
x_pos# = pos_pos_x#
y_pos# = pos_pos_y#
z_pos# = 0
u_data# = 1
v_data# = 0
endcase
`if poly 3 write bottom right corner data of plain
case 3
x_pos# = pos_pos_x#
y_pos# = neg_pos_y#
z_pos# = 0
u_data# = 1
v_data# = 1
endcase
`if poly 4 write bottom right corner data of plain
case 4
x_pos# = pos_pos_x#
y_pos# = neg_pos_y#
z_pos# = 0
u_data# = 1
v_data# = 1
endcase
`if poly 5 write bottom left corner data of plain
case 5
x_pos# = neg_pos_x#
y_pos# = neg_pos_y#
z_pos# = 0
u_data# = 0
v_data# = 1
endcase
`if poly 6 write top left corner data of plain
case 6
x_pos# = neg_pos_x#
y_pos# = pos_pos_y#
z_pos# = 0
u_data# = 0
v_data# = 0
endcase
endselect
`xpos
write memblock float 1, a, x_pos#
inc a, 4
`ypos
write memblock float 1, a, y_pos#
inc a, 4
`zpos
write memblock float 1, a, z_pos#
inc a, 4
`xnorm
write memblock float 1, a, 0
inc a, 4
`ynorm
write memblock float 1, a, 0
inc a, 4
`znorm
write memblock float 1, a, -1
inc a, 4
`u data
write memblock float 1, a, u_data#
inc a, 4
`vdata
write memblock float 1, a, v_data#
inc a, 4
next i
make mesh from memblock 1, 1
delete memblock 1
make object object, 1, 1
delete mesh 1
endfunction
