OK, I made the DarkBASIC version of the loader code, retaining as much of the original structure as possible. The only thing stopping it from working with DBPro is setupComplexObjectDBC(), so just change that to the DBP equivalent.
function LoadLevel(CurrentLevel$)
if File Exist(CurrentLevel$)
open to read 1,CurrentLevel$
TotalObjects=0:obj=0:group=0
TempText$=""
val1#=0:val2#=0:val3#=0:size#=0
SCSetup=0
read string 1,s$
TotalObjects=val(s$)
for i=1 to TotalObjects
read string 1,s$
obj=val(s$)
read string 1,TempText$
read string 1,s$
group=val(s$)
select group
case 1
`Level Object
inc obj
LastLevelObject=obj
endcase
case 2
`Enemies
inc obj
LastEnemy=obj
`Change array here
endcase
case 3
`Light Sources
inc LastLightSource
`Change array here
endcase
endselect
Load Object TempText$,obj
read string 1,s$
val1#=val(s$)
read string 1,s$
val2#=val(s$)
read string 1,s$
val3#=val(s$)
Position Object obj,val1#,val2#,val3#
read string 1,s$
val1#=val(s$)
read string 1,s$
val2#=val(s$)
read string 1,s$
val3#=val(s$)
Rotate Object obj,val1#,val2#,val3#
read string 1,s$
size#=val(s$)
read string 1,s$
SCSetup=val(s$)
Scale Object obj,size#,size#,size#
if SCSetup=1
setupComplexObjectDBC(obj,group,2)
endif
next i
close file 1
endif
endfunction
WINNER list:
Latch, Lee Bamber, TDK
Thanks for the help!