Thanks, I was hoping to edit the post but it took a while to post (this is my first time posting here).
I found a couple of threads about putting the Functions after the main loop but it then errors with "Run time error - File does not exist at line 154."
I think I need to retype it all as I've been moving bits around trying to get it to work but here is what I have so far.
sync on
sync rate 0
hide mouse
backcolor = rgb(0,0,0)
color backdrop backcolor
cls
mapsize = 512
dim map$(mapsize,mapsize)
maxcubes = 16
cubesize = 200
collisionstep = int(cubesize/10)
fog on
fog color backcolor
fog distance (int(maxcubes)*cubesize)
set camera range 1, (maxcubes*cubesize)
loadmap("HugeDungeon1.map", mapsize)
load image "wall2.jpg",1
load image "ground.jpg",2
load image "wall.jpg",3
`Creates the walls
for i = 1 to maxcubes * maxcubes
make object cube 100+i, cubesize
texture object 100+i, 1
next i
`Creates the Floor
for i = 1 to maxcubes * maxcubes
make object plain 10000+i, cubesize, cubesize
rotate object 10000+i, 90, 90, 0
texture object 10000+i, 2
next i
`Creates the 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
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 = xxx +1
curposx = int(cx#) + xx
curpos = int(cz#) + zz
if curposx < 1 then curposx = 1
if curposx > mapsize then curposx = mapsize
` Wand
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
else
hide object 100+zzz
endif
`Boden
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), cuposz * cubesize
else
hide object 10000+zzz
endif
`Decke
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, curpos * cubesize, (cubesize/2), curposz * cubesize
else
hide object 20000+zzz
endif
next xx#
next yy#
oldpositionx# = camera position x()
oldpositionz# = camera position z()
`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, curpos * cubesize
`Collision Detection
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
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()
end
function loadmap(HugeDungeon1$,size)
open to read 1, (HugeDungeon1$) [b]<--- Line 154[/b]
for x = 1 to size
for y = 1 to size
read byte 1,tmp
map$(x,y) = chr$(tmp)
next x
next y
close file 1
endfunction
I'm still really new at this so I'm sorry if I seem to be talking rubbish half the time.[u][i]