i think i get it...
so you'd like this
dim weapon(weapcfg,weapcount,2) as dword
dim holds(cargocount,cargotype) as dword
type RTSunit_t
name as string
weapons as array(weapon)
cargoholds as array(holds)
hull and integer
armour as integer
shield as integer
endtype
RTSunit as RTSunit_t
RTSunit.weapons(1,1,1) = 1
however i'd prefer this
type fVec3_t
x as float
y as float
z as float
endtype
type fVec2_t
u as float
v as float
endtype
type Dark3DHeader_t
numVert as dword
ofsVert as dword
numNorm as dword
ofsNorm as dword
numFace as dword
ofsFace as dword
sizeofFace as dword
OfsSkin as dword
dim Skin(32) as byte
endtype
type Dark3DFace_t
Vec as word
dim v(3) as word
dim n(3) as word
endtype
type Dark3DMesh_t
header as Dark3DHeader_t
dim p(VERTEX) as fVec3_t
dim v(VERTEX) as fVec3_t
dim f(FACES) as Dark3DFace_t
dim t(VERTEX) as fVec2_t
endtype vertex,faces
make object box 1,100.0
make mesh from object 1,1 : delete object 1
make memblock from mesh 1,1
NumVertex = memblock dword(1,0)
NumFaces = memblock dword(1,16)
MyObject as Dark3DMesh_t(NumVertex,NumFaces)
MyObject.Header.NumVert = memblock dword(1,pos) : inc pos,4
MyObject.Header.OfsVert = memblock dword(1,pos) : inc pos,4
MyObject.Header.NumNorm = memblock dword(1,pos) : inc pos,4
MyObject.Header.OfsNorm = memblock dword(1,pos) : inc pos,4
MyObject.Header.NumFace = memblock dword(1,pos) : inc pos,4
MyObject.Header.OfsFace = memblock dword(1,pos) : inc pos,4
MyObject.Header.SizeofFace = memblock dword(1,pos) : inc pos,4
MyObject.Header.OfsSkin = memblock dword(1,pos) : inc pos,4
pos = MyObject.Header.OfsVert :`// should = 32
for i=1 to MyObject.Header.NumVert
MyObject.p(i).x = memblock float(1,pos) : inc pos,4
MyObject.p(i).y = memblock float(1,pos) : inc pos,4
MyObject.p(i).z = memblock float(1,pos) : inc pos,4
next i
pos = MyObject.Header.OfsNorm :`// should be NumVert*12+32
for i=1 to MyObject.Header.NumVert
MyObject.n(i).x = memblock float(1,pos) : inc pos,4
MyObject.n(i).y = memblock float(1,pos) : inc pos,4
MyObject.n(i).z = memblock float(1,pos) : inc pos,4
next i
pos = MyObject.Header.OfsFace :`// should be NumVert*24+32
for i=1 to MyObject.Header.NumVert
MyObject.f(i).Vec = memblock word(1,pos) : inc pos,2 :`// this should always be 3!!
for j=1 to 3
MyObject.f(i).v(i) = memblock word(1,pos) : inc pos,2
MyObject.f(i).n(i) = memblock word(1,pos) : inc pos,2
next j
next i
pos = MyObject.Header.OfsSkin
for i=1 to MyObject.Header.NumVert
MyObject.t(i).u = memblock float(1,pos) : inc pos,4
MyObject.t(i).u = memblock float(1,pos) : inc pos,4
next i
and that could save an entire mesh into an single object

i've even added an extra array in the header there for saving the string for the texture name

that way you can make a single function to make an object including texture from a type file ... and if they added something like
save type variable to file MyObject, "MyObject.x"
i mean all it'd have to do is save all the data within the type, wouldn't have to save it in any particular way as such - but even still if we could pass the types into functions it'd give us so much fexibility there you'd be amazed at what you could achieve
Tsu'va Oni Ni Jyuuko Fiori Sei Tau!
One block follows the suit ... the whole suit of blocks is the path ... what have you found?