With U5.8 this part of the code is no longer needed:
`***********************************************************************
`***********************************************************************
`***********************************************************************
`***********************************************************************
`get number of limbs in the terrain
perform checklist for object limbs 1
numterrlimbs = checklist quantity()
empty checklist
`get vertex data for collision
`collision index for terrain will be 3
terrcollobj = 3
`keep up with vertex storage indexs start at 1
j = 1
`cycle through each limb aquiring data
for i = 0 to (numterrlimbs - 1)
`need to follow these steps to get around DBP bug with
`make mesh from object command not working over 21844 polys
`remember to delete unneeded info when done
make object from limb terrcollobj, 1, i
make mesh from object terrcollobj, terrcollobj
`delete object as no longer needed
delete object terrcollobj
`aquire data into a memblock to store into array
make memblock from mesh terrcollobj, terrcollobj
`delete mesh as no longer needed
delete mesh terrcollobj
`dim array to store vertex data in
if i = 0
`# of verts to store = # of verts per limb * number of limbs * 3
`as there are 3 floats to store per vert
numb_terr_verts = (memblock dword(terrcollobj, 8) * numterrlimbs)
dim Terr_Vert_Data#((numb_terr_verts * 3)) as float
endif
`keep track of memblock position to get data from starting with pos 12
a = 12
`store all 3 vert datas (x,y,z) for each vert into array
for k = 1 to memblock dword(terrcollobj, 8)
`store vertex's x value
Terr_Vert_Data#(j) = memblock float(terrcollobj,a)
`inc to next vertex storage index
inc j, 1
`store vertex's y value
Terr_Vert_Data#(j) = memblock float(terrcollobj,a+4)
`inc to next vertex storage index
inc j, 1
`store vertex's z value
Terr_Vert_Data#(j) = memblock float(terrcollobj,a+8)
`inc to next vertex storage index
inc j, 1
`inc to next vertex position
inc a, memblock dword(terrcollobj, 4)
next k
`delete memblock as no longer needed
delete memblock terrcollobj
next i
`make memblock to store data in as this is what NGC wants
`memblock size = 12 bytes for object's date +
`(total number of verts * size of each vert data in bytes (12) )
make memblock terrcollobj, (12 + ( numb_terr_verts * 12 ) )
`write memblock object fvf format (2 = just x,y,z per vert)
write memblock dword terrcollobj, 0, 2
`write size of each vert data (12 4 bytes for each value of x,y,z)
write memblock dword terrcollobj, 4, 12
`write number of verts in the memblock object
write memblock dword terrcollobj, 8, numb_terr_verts
`keep up with memblock vert position
a = 12
`keep up with vert data index
b = 1
`write all vert data to array
for i = 1 to numb_terr_verts
`write vertex's x value
write memblock float terrcollobj, a, Terr_Vert_Data#(b)
`inc to next vertex data index
inc b, 1
`inc to next vertex position
inc a, 4
`write vertex's y value
write memblock float terrcollobj, a, Terr_Vert_Data#(b)
`inc to next vertex data index
inc b, 1
`inc to next vertex position
inc a, 4
`write vertex's z value
write memblock float terrcollobj, a, Terr_Vert_Data#(b)
`inc to next vertex data index
inc b, 1
`inc to next vertex position
inc a, 4
next i
`undim unneeded array to save memory
undim Terr_Vert_Data#(0)
`set collision type for the world as a static mesh
CollisionTypePRO( terrcollobj, TYPE_WORLD, 1 )
`***********************************************************************
`***********************************************************************
`***********************************************************************
`***********************************************************************
And can be replaced with this:
`***********************************************************************
`***********************************************************************
`***********************************************************************
`***********************************************************************
`set collision type for the world as a non-static mesh
CollisionTypePRO( 1, TYPE_WORLD, 0 )
`***********************************************************************
`***********************************************************************
`***********************************************************************
`***********************************************************************
As make mesh from object now supports more than 65535 verts
[edit] Converted code over to NGC v2.03
http://mapmasterz.com/lit/ngc203_with_advanced_terrain.zip