I've made some optimization and some code clean-up in the last two-three days.
Interestingly the major bottleneck of the code was here:
FUNCTION coordvalid: x,y,l
IF x<0 THEN RETURN FALSE
IF x>xmapd-1 THEN RETURN FALSE
IF y<0 THEN RETURN FALSE
IF y>ymapd-1 THEN RETURN FALSE
IF l<0 THEN RETURN FALSE
IF l>layers-1 THEN RETURN FALSE
RETURN TRUE
ENDFUNCTION
putting all the IFs into one row made a huge performance boost, also changing the parameters to integer made another one:
FUNCTION coordvalid: x%,y%,l%
IF x<0 OR x>xmapd-1 OR y<0 OR y>ymapd-1 OR l<0 OR l>layers-1 THEN RETURN FALSE
RETURN TRUE
ENDFUNCTION
I've also added the abilities for slopes, but the shade is wrong on them, also the face culling for blocks next to them :)
Made some preparation and optimization for a Fez like game. Also expanded the debug and the setting with some useful stuff.
Also added a incredible slow wireframe mode.
Download source and binary: https://dl.dropbox.com/u/292449/glbasic/iso/isometric.zip (https://dl.dropbox.com/u/292449/glbasic/iso/isometric.zip)
Download directly for Android: https://dl.dropbox.com/u/292449/glbasic/iso/isometric_optimized.apk (https://dl.dropbox.com/u/292449/glbasic/iso/isometric_optimized.apk)
(https://dl.dropbox.com/u/292449/glbasic/img/iso_moresettings.jpg)