type and dim ?

Blitz3D Forums/Blitz3D Programming/type and dim ?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Duckstab[o],

Its true that Blitz Type Arrays can only have 1 dimension:
type mapsector 
field x 
field y 
ect 
ect 
end type 

type map 
field a.mapsector[10] 
end type 

mymap.map = new map
mymap\a[1]=new mapsector
mymap\a[2]=new mapsector

mymap\a[1]\x=10
mymap\a[1]\y=100

print mymap\a[1]\y
However, there is very simple algorithm used by many compilers to calcuate the linear index of multi dimensional arrays. You can apply the formula yourself. One way or another this math is applied.

If your ready for the challenge you can also create an array of types.
dim maparray.map(10) ;notice the parenthesis '(' & ')'
maparray(1)=new map
maparray(1)\a[1]=new mapsector
maparray(1)\a[1]\y=10
print maparray(1)\a[1]\y
You can also do this:
global staticarray.map[100]; notice the 'global keyword and '[' & ']' brackets.
staticarray[4] = New map
staticarray[4]\a[1]=New mapsector
staticarray[4]\a[1]\x=21
Print staticarray[4]\a[1]\x
This difference between them is that you cannot redim a staticarray and its limited to 1 dimension.