for some reason my program saves and loads fine except for when I quit it and rerun, it doesn't load the levels objects onscreen?!
Rem Project: 3dEditor2
Rem Created: Thursday, October 17, 2013
Rem ***** Main Source File *****
autocam Off
set display mode desktop width(),desktop height(),32
Sync On: Sync Rate 120: Sync
set window off
hide light 0
global count=0
global cursorobject = 6999
global parentobject = 7000
global objectnumber = 1
global height#=50.0
global smooth#=25.0
global distance#=180.0
global angle# =45.0
global cursx#
global cursy#
global cursz#
global currenttexture=2
global tick
global zoomfactor#
global sizex#=5.0
global sizey#=5.0
global sizez#=5.0
global addx#=0
global addz#=0
global s$="Saved!"
global load$ = "Loaded!"
global levelnumber = 1
global l$
type blocks
objnumber as integer
xloc# as float
yloc# as float
zloc# as float
sx# as float
sy# as float
sz# as float
texturenumber as integer
scalex# as float
scaley# as float
scalez# as float
endtype
dim block(6001) as blocks
clear()
startup()
Do
print count
control()
set camera to follow 0,cursx#,cursy#,cursz#,angle#,distance#+zoomfactor#,height#,smooth#,1
BirdsEyeCam(1,cursx#,cursy#,cursz#,50)
sync
LOOP
function control()
rem ***** var for tracking height of cursor *****
sizey#=object size y (cursorobject)
sizex#=object size y (cursorobject)
sizez#=object size y (cursorobject)
rem ***** Mouse Wheel to zoom in/out *****
z=mousemovez()
if z=120
zoomfactor#=zoomfactor#+5
endif
if z=-120
zoomfactor#=zoomfactor#-5
endif
print z
rem ****************************************
rem ***
rem **** test for key presses *****
r=scancode()
print r
tick=tick+1
if tick>7
tick=0
select r
rem ***** move up *****
case 200
cursz#=cursz#+sizez#
endcase
rem ***** move down *****
case 208
cursz#=cursz#-sizez#
endcase
rem ***** move left *****
case 203
cursx#=cursx#-sizex#
endcase
rem ***** move right *****
case 205
cursx#=cursx#+sizex#
endcase
rem ***** Raise cursor ****
case 30
cursy#=cursy#+sizey#
endcase
rem ***** Lower cursor *****
case 44
cursy#=cursy#-sizey#
endcase
rem ***** space-bar to place object *****
case 57
make object box objectnumber,object size x(cursorobject),object size y(cursorobject),object size z(cursorobject)
scale object objectnumber,100+addx#,100,100+addz#
position object objectnumber,cursx#,cursy#,cursz#
`texture object objectnumber,currenttexture
block(objectnumber).xloc# = cursx#
block(objectnumber).yloc# = cursy#
block(objectnumber).zloc# = cursz#
block(objectnumber).objnumber = 1
block(objectnumber).texturenumber = currenttexture
block(objectnumber).sx#= object size x(objectnumber)
block(objectnumber).sy#= object size y(objectnumber)
block(objectnumber).sz#= object size z(objectnumber)
block(objectnumber).scalex#=addx#
block(objectnumber).scaley#=addy#
block(objectnumber).scalez#=addz#
inc objectnumber
endcase
rem ***** Move camera up higher *****
case 26
height#=height#+sizey#
endcase
rem ***** make camera move lower *****
case 40
height#=height#-sizey#
endcase
rem ***** Make cursor object wider *****
case 77
addx#=addx#+100
scale object cursorobject,100+addx#,100,100+addz#
endcase
rem ***** Make cursor object narrower *****
case 75
if addx#>0.0
addx#=addx#-100
scale object cursorobject,100+addx#,100,100+addz#
endif
endcase
rem ***** Make cursor object longer
case 72
addz#=addz#+100
scale object cursorobject,100+addx#,100,100+addz#
endcase
case 80
if addz#>0.0
addz#=addz#-100
scale object cursorobject,100+addx#,100,100+addz#
endif
endcase
case 60
save(levelnumber)
text desktop width()/2,desktop height()/2,s$
sync
wait 1000
endcase
case 46
clear()
endcase
case 59
clear()
load(levelnumber)
text desktop width()/2,desktop height()/2,load$
endcase
endselect
endif
rem ***** Place cursor object *****
position object cursorobject,cursx#,cursy#,cursz#
endfunction
Function startup()
` load image "wall1.png",2
make camera 1
set camera view 1, desktop width()-550,0,desktop width(),350
make matrix 1,2000,2000,25,25
position matrix 1,0,0,0
make object box cursorobject,sizex#,sizey#,sizez#
position object cursorobject,cursx#,cursy#,cursz#
ghost object on cursorobject
ENDFUNCTION
Function BirdsEyeCam(camnum,X#,Y#,Z#,Height2#)
position camera camnum,x#,y#+height2#+height#,z#
point camera camnum,x#,y#,z#
endfunction
function save(levelnumber)
l$="level"
l$=l$+str$(levelnumber)
l$=l$+".lev"
if file exist(l$) = 1
delete file l$
ENDIF
open to write 1,l$
for n=1 to 6000
write float 1,block(n).xloc#
write float 1,block(n).yloc#
write float 1,block(n).zloc#
write long 1,block(n).objnumber
write long 1,block(n).texturenumber
write float 1,block(n).scalex#
write float 1,block(n).scaley#
write float 1,block(n).scalez#
NEXT
close file 1
ENDFUNCTION
function clear()
for n=1 to 6000
if object exist(n)
delete object n
block(n).xloc# = 0
block(n).yloc# = 0
block(n).zloc# = 0
block(n).objnumber = 0
block(n).texturenumber=0
block(n).scalex# = 0
block(n).scaley# = 0
block(n).scalez# = 0
ENDIF
NEXT
objectnumber=1
count=0
sync
ENDFUNCTION
function load(levelnumber)
l$="level"
l$=l$+str$(levelnumber)
l$=l$+".lev"
open to read 1,l$
for n=1 to 6000
read float 1,block(n).xloc#
read float 1,block(n).yloc#
read float 1,block(n).zloc#
read long 1,block(n).objnumber
read long 1,block(n).texturenumber
read float 1,block(n).scalex#
read float 1,block(n).scaley#
read float 1,block(n).scalez#
if block(n).objnumber > 0
r=block(n).objnumber
scx#=block(n).scalex#
scy#=block(n).scaley#
scz#= block(n).scalez#
textnum=block(n).texturenumber
make object box objectnumber,block(n).sx#,block(n).sy#,block(n).sz#
`texture object objectnumber,textnum
position object objectnumber,block(n).xloc#,block(n).yloc#,block(n).zloc#
scale object objectnumber,100+scx#,100+scy#,100+scz#
count=count+1
inc objectnumber
endif
NEXT
close file 1
ENDFUNCTION
Hail to the king, baby!
http://davidjohnwheeler.blogspot.co.uk