Try this:
//memblock and vertexdata terrain editor demo
//perhaps will become level editor for stickman game
//hopefully if i ever get that far.
sync on
sync rate 0
set display mode display width(),display height(),display depth(), 1
//autocam off
terrain = 1
size = 64
polys = size^2 * 2
verts = polys*3
memsize = 12+36*verts
make memblock terrain, memsize
write memblock dword terrain, 0, 338
write memblock dword terrain, 4, 36
write memblock dword terrain, 8, verts
for i=1 to size
for j=1 to size
vert = 6*size*(i-1)+6*(j-1)
pos = vert*36+12
r# = 10*(i-1)
c# = 10*(j-1)
h# = 0.0
` syntax makeVertex(mem, p, x#,y#,z#, nx#,ny#,nz#, diffuse as dword, u#,v#)
makeVertex(terrain,pos, c#,h#,r#, 0.0,1.0,0.0, 0xFF888888, 0.0,0.0)
makeVertex(terrain,pos+36, c#,h#,r#+10, 0.0,1.0,0.0, 0xFF888888, 0.0,0.0)
makeVertex(terrain,pos+72, c#+10,h#,r#, 0.0,1.0,0.0, 0xFF888888, 0.0,0.0)
makeVertex(terrain,pos+108, c#+10,h#,r#, 0.0,1.0,0.0, 0xFF888888, 0.0,0.0)
makeVertex(terrain,pos+144, c#,h#,r#+10, 0.0,1.0,0.0, 0xFF888888, 0.0,0.0)
makeVertex(terrain,pos+180, c#+10,h#,r#+10, 0.0,1.0,0.0, 0xFF888888, 0.0,0.0)
next j
next i
make mesh from memblock terrain,terrain
save mesh "terrain.x", terrain
delete memblock terrain
make object 1,terrain
set object cull 1, 0
position camera 0, 0,5*size,0
point camera 0, 5*size,0,5*size
while not escapekey()
text 20, 20, str$(statistic(1))
sync
endwhile
end
function makeVertex(mem, p, x#,y#,z#, nx#,ny#,nz#, diffuse as dword, u#,v#)
write memblock float mem, p, x#
write memblock float mem, p+4, y#
write memblock float mem, p+8, z#
write memblock float mem, p+12, nx#
write memblock float mem, p+16, ny#
write memblock dword mem, p+20, nz#
write memblock dword mem, p+24, diffuse
write memblock float mem, p+28, x#/10.0
write memblock float mem, p+32, z#/10.0
endfunction
The main problem was this section:
makeVertex(terrain,pos, c#,h#,r#, 0,1,0, 0xFF888888, 0,0)
makeVertex(terrain,pos, c#,h#,r#+10, 0,1,0, 0xFF888888, 0,0)
makeVertex(terrain,pos, c#+10,h#,r#, 0,1,0, 0xFF888888, 0,0)
makeVertex(terrain,pos, c#+10,h#,r#, 0,1,0, 0xFF888888, 0,0)
makeVertex(terrain,pos, c#,h#,r#+10, 0,1,0, 0xFF888888, 0,0)
makeVertex(terrain,pos, c#+10,h#,r#+10, 0,1,0, 0xFF888888, 0,0)
You forgot to move the pos counter along by 36 for each of the 6 vertices.