I've loaded the entire Huge Dungeon Tutorial word for word and I dont get any errors during compiling, but whenever I try to run the exe, it seems like it's loading, but when the black screen maximizes, it instantly closes and returns to the editor. Yes, I've searched the forums, all threads are too old to be able to reply or post in. I'm looking for some help from anyone.
set display mode 800, 600, 32
sync on
sync rate 0
hide mouse
backcolor=RGB(0,0,0)
backdrop on
color backdrop backcolor
cls
Remstart
************************************************
Remend
mapsize=512
dim map$(mapsize,mapsize)
maxcubes=16
cubesize=200
collisionstep=int(cubsize/10)
fog on
fog color backcolor
fog distance (int(maxcubes)*cubesize)
set camera range 1,(maxcubes*cubesize)
REmstart
function loadmap(filename$,size)
open to read 1, filename$
for y=1 to size
for x=1 to size
read byte 1,tmp
map$(x,y)=chr$(tmp)
next x
next y
close file 1
endfunction
loadmap("dungeon.map",mapsize)
Remend
load image "wall2.jpg",1
load image "ground.jpg",2
load image "wall.jpg",3
`Wall
for i=1 to maxcubes*maxcubes
make object cube 100+i, cubesize
texture object 100+i,1
next i
`Floor
for i=1 to maxcubes*maxcubes
make object plain 10000+i, cubesize, cubesize
rotate object 10000+i,90,0,0
texture object 10000+i,2
next i
`Ceiling
for i=1 to maxcubes*maxcubes
make object plain 20000+i,cubesize,cubesize
rotate object 20000+i,270,0,0
texture object 20000+i,3
next i
set ambient light 30
make light 1
make light 2
set point light 1,0,0,0
set spot light 2,45,90
color light 2,RGB(252,216,141)
color light 1,RGB(236,182,100)
color light 0,RGB(0,0,0)
for z=1 to mapsize
for x=1 to mapsize
if map$(x,z)="O"
cx=x*cubesize
cz=z*cubesize
endif
next x
next z
position camera cx, 0, cz
oldpositionx#=camera position x()
oldpositionz#=camera position z()
do
if mouseclick()=1 then move camera maxcubes
if mouseclick()=2 then move camera maxcubes*(-1)
ry#=wrapvalue(ry#+mousemovex())
rotate camera 0,ry#,0
`******************************************************
cx#=int(camera position x()/cubesize)-int(maxcubes/2)
cz#=int(camera position z()/cubesize)-int(maxcubes/2)
tx#=camera position x()
tz#=camera position z()
zzz=0
`*******************************************************
for zz=1 to maxcubes
for xx=1 to maxcubes
zzz=zzz+1
curposx=int(cx#)+xx
curposz=int(cz#)+zz
if curposx<=1 then curposx=1
if curposx>=mapsize then curposx=mapsize
if curposz<=1 then curposz=1
if curposz>=mapsize then curposz=mapsize
`Wall
if map$(int(curposx),int(curposz))="#" or map$(int(curposx),int(curposz))="S"
show object 100+zzz
position object 100+zzz, curposx*cubesize,0.0,curposz*cubesize
`Collision with wall
if map$(int(curposx),int(curposz))="#"
if tx#>=((curposx*cubesize)-(cubesize/2))-collisionstep and tx#<=((curposx*cubesize)+(cubesize/2))+collisionstep and tz#>=((curposz*cubesize)-(cubesize/2))-collisionstep and tz#<=((curposz*cubesize)+(cubesize/2))+collisionstep
position camera oldpositionx#, camera position y(), oldpositionz#
oldpositionx#=camera position x()
oldpositionz#=camera position z()
endif
endif
else
hide object 100+zzz
endif
`Floor
if map$(int(curposx),int(curposz))=":" or map$(int(curposx),int(curposz))="D" or map$(int(curposx),int(curposz))="S" or map$(int(curposx),int(curposz))="T"
show object 10000+zzz
position object 10000+zzz, curposx*cubesize, (cubesize/2)*(-1), curposz*cubesize
else
hide object 10000+zzz
endif
`Ceiling
if map$(int(curposx),int(curposz))=":" or map$(int(curposx),int(curposz))="D" or map$(int(curposx),int(curposz))="S" or map$(int(curposx),int(curposz))="T"
show object 20000+zzz
position object 20000+zzz, curposx*cubesize, (cubesize/2), curposz*cubesize
else
hide object 20000+zzz
endif
next xx#
next zz#
oldpositionx#=camera position x()
oldpositionz#=camera position z()
position light 1, camera position x(), camera position y(), camera position z()
position light 2, camera position x(), camera position y(), camera position z()
color light 1,RGB(200+int(rnd(50)-25),120,60)
rotate light 2, camera angle x(), camera angle y(), camera angle z()
loop
Thats my source, now you'll notice I put RemStart and RemEnd around the function.
function loadmap(filename$,size)
open to read 1, filename$
for y=1 to size
for x=1 to size
read byte 1,tmp
map$(x,y)=chr$(tmp)
next x
next y
close file 1
endfunction
loadmap("dungeon.map",mapsize)
It IS the function thats crashing the program because with the rem around it the program doesn't crash, but nothing can be seen. Can you guys help me please?