Ok, this is a more majour update so ill make a new post.
Using the grab object example that comes with dbpro iv updated the code so you can move and rotate the terrain
Here it is:
setup(1)
load_objects("Modles/",2)
set ambient light 100
main:
do
position camera camera position x(),0- mousez()/5 ,camera position z()
if rightkey() = 1
position camera camera position x(0)+5,camera position y(0),camera position z(0)
endif
if leftkey() = 1
position camera camera position x(0)-5,camera position y(0),camera position z(0)
endif
if upkey() = 1
position camera camera position x(0),camera position y(0),camera position z(0)+5
endif
if downkey() = 1
position camera camera position x(0),camera position y(0),camera position z(0)-5
endif
text 612 ,590 +60, "Scroll Wheel = " + str$( mousez() )
text 612 ,590 +80, "Mouse x = " + str$( mousex() )
text 612 ,590 +100, "Mouse y = " + str$( mousey() )
gosub _drag_object
sync
loop
`````````Functions````````
Function Setup(Style)
if style = 1
load image "style1.bmp",1
make object plain 1,7.5,6
position object 1,-0.25,0,5
lock object on 1
texture object 1,1
set object transparency 1,6
set alpha mapping on 1,90
endif
sync on
sync rate 60
autocam off
position camera 0,0,10,0
point camera 0,0,0
if style = 2
endif
EndFunction
Function Load_Objects(directory$,Amount)
`Directory format:
` modles/another_folder/dfgrhvbflkgsbum/
for x = 2 to Amount
load object directory$ + str$(x) +".x" , x
rem hide object x
if x = amount
gosub main
endif
next x
EndFunction
_drag_object:
if mouseclick()=0 then pickmode=0 : cursorobj=0
mclick=mouseclick()
if mclick>0
if pickmode=0
cursorobj=pick object(mousex(),mousey(),2,2)
if cursorobj>0
pickmode=mclick
pickdistance#=get pick distance()
pickfromx#=get pick vector x()
pickfromy#=get pick vector y()
pickfromz#=get pick vector z()
if pickmode=1
objx#=object position x(cursorobj)
objy#=object position y(cursorobj)
objz#=object position z(cursorobj)
else
objx#=object angle x(cursorobj)
objy#=object angle y(cursorobj)
objz#=object angle z(cursorobj)
pickdiffx#=mousemovey() : pickdiffx#=0
pickdiffy#=mousemovex() : pickdiffy#=0
endif
else
highlightobj=0
endif
endif
if pickmode>0
if pickmode=1
pick screen mousex(),mousey(),pickdistance#
picktox#=get pick vector x()
picktoy#=get pick vector y()
picktoz#=get pick vector z()
pickdiffx#=picktox#-pickfromx#
pickdiffy#=picktoy#-pickfromy#
pickdiffz#=picktoz#-pickfromz#
grid=0
if grid=1
pickdiffx#=int(pickdiffx#/5)*5
pickdiffy#=int(pickdiffy#/5)*5
pickdiffz#=int(pickdiffz#/5)*5
endif
position object cursorobj,objx#+pickdiffx#,objy#+pickdiffy#,objz#+pickdiffz#
else
pickdiffx#=pickdiffx#+mousemovey()
pickdiffy#=pickdiffy#+mousemovex()
grid=0
if grid=1
tpickdiffx#=int(pickdiffx#/22.5)*22.5
tpickdiffy#=int(pickdiffy#/22.5)*22.5
else
tpickdiffx#=pickdiffx#
tpickdiffy#=pickdiffy#
endif
rotate object cursorobj,wrapvalue(objx#-tpickdiffx#),wrapvalue(objy#-tpickdiffy#),objz#
endif
endif
endif
return
Hope this helps for anyone elce working on a simmler project
At least i try

http://img192.imageshack.us/img192/1571/errormessagepj.png