By default, the landscape is in wireframe form until prepare landscape texture has been called.(which aint working)
So here's a test code. Requires the images from Van-B's demo, or make your own.
sync on
autocam off
`hide mouse
randomize timer()
load image "terrain\sand.bmp", 1
load image "terrain\heightmap.bmp", 2
load image "terrain\colormap.bmp", 3
`load image "terrain\alphamap.bmp", 4
null = memblock exist(1)
null = object exist(1)
mx = 128
mz = 128
sizex# = 4000
sizez# = 4000
obj = 1
prepare landscape data 1,obj,1,1
create landscape 1, sizex#,sizez#,mx,mz
set landscape from heightmap 1,2,500.0
set landscape from colormap 1, 3
set landscape light 1, 0
set landscape specular 1, 0
`randomize landscape 1, 50.0
`set landscape height 1, 2, 3, 50.0
update landscape 1
set object wireframe 1, 0
texture object obj, 1
DO
sync
LOOP
camera_stuff:
oldcx#=cx#
oldcz#=cz#
speed# = 5
if upkey()=1
cx#=newxvalue(cx#,a#,speed#)
cz#=newzvalue(cz#,a#,speed#)
endif
if downkey()=1
cx#=newxvalue(cx#,a#,-speed#)
cz#=newzvalue(cz#,a#,-speed#)
endif
if leftkey()=1
cx#=newxvalue(cx#,wrapvalue(a#-90.0),speed#)
cz#=newzvalue(cz#,wrapvalue(a#-90.0),speed#)
endif
if rightkey()=1
cx#=newxvalue(cx#,wrapvalue(a#+90.0),speed#)
cz#=newzvalue(cz#,wrapvalue(a#+90.0),speed#)
endif
if shiftkey() then inc cy#, 2
if controlkey() then dec cy#, 2
a#=wrapvalue(a#+(mousemovex()/3.0))
cxa#=cxa#+(mousemovey()/3.0)
if cxa#<-90.0 then cxa#=-90.0
if cxa#>90.0 then cxa#=90.0
cy# = get landscape ground height(1, cx#, cz#)
position camera cx#,cy#+100,cz#
rotate camera wrapvalue(cxa#),a#,0
RETURN
"eureka" - Archimedes