home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 13485 / render_mesh_static.7z / render_mesh_static.ms
Encoding:
Text File  |  2017-10-22  |  16.2 KB  |  565 lines

  1. scale_offset = 0x1b89
  2.  
  3. scale_value = 0
  4.     
  5.     
  6. if ( (getfiles "D:\logger_maxscript.txt").count != 0 ) then (
  7.     logfile="D:\logger_maxscript.txt"
  8.     openLog "D:\logger_maxscript.txt" mode:"a" outputOnly:true
  9.     )    
  10.     
  11.     
  12.     
  13. fname = getOpenFileName \
  14. caption:"Open .mesh from Mesh folder" \
  15. types:"Halo5Mesh (*.*)|*.*" \
  16. historyCategory:"Halo5MeshPresets"    
  17.     
  18.  
  19. -- f__model = fopen fname "rb"   --"D:\\needler\\needler.model" "rb"
  20. -- f__model = fopen "D:\\plasma_rifle_h2\\plasma_rifle_h2.model" "rb"
  21.  
  22. f_header = fopen fname "rb"  
  23.  
  24. fseek f_header -64 #seek_end
  25. --values.X * (cinfo.x_max - cinfo.x_min) + cinfo.x_min
  26.  
  27. if((findString fname "storm_masterchief.render_model" ) != undefined  ) do ( 
  28.     fseek f_header 0x06d39ca #seek_set
  29.     )
  30.     
  31. fseek f_header scale_offset #seek_set
  32.  
  33.  
  34. X_MIN = readfloat f_header
  35. X_MAX = readfloat f_header
  36. X_VALUE = X_MAX - X_MIN
  37. print("X_VALUE: " + (X_VALUE as string)  + "        X_MIN: "+  (X_MIN as string) + "        X_MAX: "  + (X_MAX as string))
  38. Y_MIN = readfloat f_header
  39. Y_MAX = readfloat f_header
  40. Y_VALUE = Y_MAX - Y_MIN
  41. print("Y_VALUE: " + (Y_VALUE as string)  + "        Y_MIN: "+  (Y_MIN as string) + "        Y_MAX: "  + (Y_MAX as string))
  42. Z_MIN = readfloat f_header
  43. Z_MAX = readfloat f_header
  44. Z_VALUE = Z_MAX - Z_MIN
  45. print("Z_VALUE: " + (Z_VALUE as string)  + "        Z_MIN: "+  (Z_MIN as string) + "        Z_MAX: "  + (Z_MAX as string))
  46. U_MIN = readfloat f_header
  47. U_MAX = readfloat f_header
  48. U_VALUE = U_MAX - U_MIN
  49. print("U_VALUE: " + (U_VALUE as string)  + "        U_MIN: "+  (U_MIN as string) + "        U_MAX: "  + (U_MAX as string))
  50. V_MIN = readfloat f_header
  51. V_MAX = readfloat f_header
  52. V_VALUE = V_MAX - V_MIN
  53. print("V_VALUE: " + (V_VALUE as string)  + "        V_MIN: "+  (V_MIN as string) + "        V_MAX: "  + (V_MAX as string))
  54. W_MIN = readfloat f_header
  55. W_MAX = readfloat f_header
  56. W_VALUE = W_MAX - W_MIN
  57. print("W_VALUE: " + (W_VALUE as string)  + "        W_MIN: "+  (W_MIN as string) + "        W_MAX: "  + (W_MAX as string))
  58.  
  59. scale_value =  V_VALUE * U_VALUE * X_VALUE * Y_VALUE * Z_VALUE
  60.  
  61.  
  62. if(scale_value == 0) do (
  63.     print("SET VALUES TO ZERRO!!!")
  64.     X_VALUE = 1
  65.     Y_VALUE = 1
  66.     Z_VALUE = 1
  67.     U_VALUE = 1
  68.     V_VALUE = 1
  69.     )
  70.  
  71.     
  72.     
  73.  
  74. fclose f_header
  75.  
  76. file_array = getFiles (fname + "[*")
  77.  
  78.  
  79.  
  80. for i = 1 to file_array.count do (
  81. print("FILENAME:    " + file_array[i])
  82.  
  83. --try (
  84.  
  85. f__mesh = fopen (file_array[i])  "rb"                    --                fopen "D:\\needler\\needler.render_model[0_mesh resource!_]" "rb"
  86.  
  87. struct data_chunk1 (
  88.     public
  89.     offset_block = 0,
  90.     size_block = 0,    
  91.     types= 0,
  92.     offset_block2 = 0,
  93.     data_coding = 0,  
  94.     element_number=0,
  95.     m = 0
  96.     )
  97.     
  98. data_chunk1_array = #()
  99.  
  100. vert_arrays = #()
  101. UV_arrays = #()
  102. face_arrays = #()
  103. m_array = #()
  104. ms = #()
  105.     
  106. vert_array = #()
  107. UV_array = #()
  108. face_array = #()
  109.  
  110.  
  111. print f__mesh
  112.  
  113. fseek f__mesh 0x20 #seek_set
  114.  
  115. v1 = #()
  116. for i = 1 to 0x0C do (
  117.     val = (readlong f__mesh #unsigned)
  118.     append v1 val
  119.     )
  120.     
  121.     
  122.     
  123. print v1
  124.  
  125. print("")
  126. print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  127. print("")
  128.  
  129.  
  130.  
  131. for i = 1 to v1[1] do (
  132.     vv1 = #()
  133.     
  134.     vv1s = (i as string + "    ||    ")
  135.     for i = 1 to 0x010 do (
  136.         val = readbyte f__mesh #unsigned
  137.         vv1s = vv1s + "    " + (bit.intAsHex val)
  138.         append vv1 val
  139.         )
  140.     print vv1s
  141.     size1 = vv1[1] + vv1[2] * 0x100 + vv1[3] * 0x10000 + vv1[4] * 0x1000000
  142.     offset1 = vv1[9] + vv1[10] * 0x100 + vv1[11] * 0x10000 + vv1[12] * 0x1000000 + (v1[8] + v1[9])
  143.     vd = data_chunk1()
  144.     vd.offset_block = offset1
  145.     vd.size_block = size1
  146.     append data_chunk1_array vd
  147.     print("offset block: 0x0" + (bit.intAsHex (vd.offset_block )) +"    size block: 0x0" + (bit.intAsHex (vd.size_block )) + "    offset next block: 0x0" + (bit.intAsHex (vd.offset_block + vd.size_block)))
  148.  
  149.         
  150.     )
  151.  
  152. print("")
  153. print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  154. print("")
  155.  
  156.     
  157. for i = 1 to v1[2] do (
  158.     vv1 = #()
  159.     vv1s = (i as string + "    ||    ")
  160.     for i = 1 to 0x020 do (
  161.         val = readbyte f__mesh #unsigned
  162.         vv1s = vv1s + "    " + (bit.intAsHex val)
  163.         )
  164.     print vv1s
  165.         
  166.     )
  167.     
  168. print("")
  169. print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  170. print("")
  171.  
  172. for i = 1 to v1[3] do (
  173.     vv1 = #()
  174.     vv1s = (i as string + "    ||    ")
  175.     for i = 1 to 0x014 do (
  176.         val = readbyte f__mesh #unsigned
  177.         append vv1 val
  178.         vv1s = vv1s + "    " + (bit.intAsHex val)
  179.         )
  180.     print vv1s
  181.         
  182.     data_chunk1_array[i + v1[2]].types = vv1[1]
  183.     offset1 = vv1[17] + vv1[18] * 0x100 + vv1[19] * 0x10000 + vv1[20] * 0x1000000
  184.  
  185.     
  186.     )
  187.  
  188.     
  189. print("")
  190. print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  191. print("")
  192.  
  193. offset_3 = ftell f__mesh
  194. fseek f__mesh (0x18 + 32) #seek_cur
  195.  
  196. for i = (v1[2] + 1) to data_chunk1_array.count do (
  197.     if(data_chunk1_array[i].types == 1) then (
  198.         vv1 = #()
  199.         vv1s = (i as string + "    ||    ")
  200.         for i = 1 to 0x050 do (
  201.             val = readbyte f__mesh #unsigned
  202.             append vv1 val
  203.             vv1s = vv1s + "    " + (bit.intAsHex val)
  204.         )
  205.         print vv1s
  206.         data_chunk1_array[i].data_coding = vv1[1] + vv1[2] * 0x100
  207.         data_chunk1_array[i].element_number = vv1[5] + vv1[6] * 0x100 + vv1[7] * 0x10000 + vv1[8] * 0x1000000
  208.  
  209.         )
  210.     else if (data_chunk1_array[i].types == 2) then (
  211.         vv1 = #()
  212.         vv1s = (i as string + "    ||    ")
  213.         for i = 1 to 0x048 do (
  214.             val = readbyte f__mesh #unsigned
  215.             append vv1 val
  216.             vv1s = vv1s + "    " + (bit.intAsHex val)
  217.         )
  218.         print vv1s
  219.         --print(vv1 as string)
  220.         data_chunk1_array[i].data_coding = vv1[1] + vv1[2] * 0x100
  221.         data_chunk1_array[i].element_number = vv1[5] + vv1[6] * 0x100 + vv1[7] * 0x10000 + vv1[8] * 0x1000000
  222.         )
  223.     else (print "!!!ERROR!!!")
  224.     )
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244. submesh_number = (data_chunk1_array.count - v1[2])/2
  245. print("submesh_number: " + (submesh_number as string))
  246.     
  247.         print("")
  248.  
  249.             print("")
  250.  
  251.                 print("")
  252.  
  253.                 
  254.                 
  255. for i = v1[2] + 1 to (v1[2] +  submesh_number) do (
  256.     print ("vertex mesh number: " + (i as string ) + "    //    " + ((vert_arrays.count + 1) as string)) 
  257.     print("offset block: 0x0" + (bit.intAsHex (data_chunk1_array[i].offset_block )) +"    size block: 0x0" + (bit.intAsHex (data_chunk1_array[i].size_block )) + "    offset next block: 0x0" + (bit.intAsHex (data_chunk1_array[i].offset_block + data_chunk1_array[i].size_block)))
  258.     vn = data_chunk1_array[i].size_block / 0x01c
  259.     --print("vertex number: " + (vn as string))
  260.     print("data coding: 0x0" + (bit.intAsHex (data_chunk1_array[i].data_coding )))
  261.     print("vertex number: " + (data_chunk1_array[i].element_number as string) +  "    (0x0" + (bit.intAsHex (data_chunk1_array[i].element_number )) + ")")
  262.     
  263.     fseek f__mesh data_chunk1_array[i].offset_block  #seek_set
  264.     
  265.     print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  266.  
  267.     vert_array = #()
  268.     UV_array = #()
  269.     
  270.     
  271.     if data_chunk1_array[i].data_coding == 0x01c24 then (
  272.         for j = 1 to data_chunk1_array[i].element_number do (
  273.             offs = ftell f__mesh
  274.             x = readshort f__mesh #unsigned
  275.             y = readshort f__mesh #unsigned
  276.             z = readshort f__mesh #unsigned        
  277.             fseek f__mesh 0x2 #seek_cur        
  278.             u = readshort f__mesh #unsigned
  279.             w = readshort f__mesh #unsigned    
  280.             u_f = u
  281.             w_f = w
  282.             
  283.             fseek f__mesh 0x10 #seek_cur    
  284.             append vert_array [x,y,z]
  285.             append UV_array [u_f,-w_f+1,0]
  286.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  287.             )
  288.         )
  289.     else if  data_chunk1_array[i].data_coding == 0x01c01 then (    
  290.         for j = 1 to data_chunk1_array[i].element_number do (
  291.             offs = ftell f__mesh
  292.             x = readshort f__mesh #unsigned
  293.             y = readshort f__mesh #unsigned
  294.             z = readshort f__mesh #unsigned        
  295.             fseek f__mesh 0x2 #seek_cur        
  296.             u = readshort f__mesh #unsigned
  297.             w = readshort f__mesh #unsigned    
  298.             u_f = u
  299.             w_f = w
  300.             
  301.             fseek f__mesh 0x10 #seek_cur    
  302.             append vert_array [x,y,z]
  303.             append UV_array [u_f,-w_f+1,0]
  304.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  305.             )
  306.         )
  307.     else if  data_chunk1_array[i].data_coding == 0x01c05 then (    
  308.         for j = 1 to data_chunk1_array[i].element_number do (
  309.             offs = ftell f__mesh
  310.             x = readshort f__mesh #unsigned
  311.             y = readshort f__mesh #unsigned
  312.             z = readshort f__mesh #unsigned        
  313.             fseek f__mesh 0x2 #seek_cur        
  314.             u = readshort f__mesh #unsigned
  315.             w = readshort f__mesh #unsigned    
  316.             u_f = u
  317.             w_f = w
  318.             
  319.             fseek f__mesh 0x10 #seek_cur    
  320.             append vert_array [x,y,z]
  321.             append UV_array [u_f,-w_f+1,0]
  322.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  323.             )
  324.         )
  325.     else if  data_chunk1_array[i].data_coding == 0x01802 then (    
  326.         for j = 1 to data_chunk1_array[i].element_number do (
  327.             offs = ftell f__mesh
  328.             x = readshort f__mesh #unsigned
  329.             y = readshort f__mesh #unsigned
  330.             z = readshort f__mesh #unsigned        
  331.             fseek f__mesh 0x2 #seek_cur        
  332.             u = readshort f__mesh #unsigned
  333.             w = readshort f__mesh #unsigned    
  334.             u_f = u
  335.             w_f = w
  336.             
  337.             fseek f__mesh 0xC #seek_cur    
  338.             append vert_array [x,y,z]
  339.             append UV_array [u_f,-w_f+1,0]
  340.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  341.             )
  342.         )    
  343.     else if  data_chunk1_array[i].data_coding == 0x02003 then (    
  344.         for j = 1 to data_chunk1_array[i].element_number do (
  345.             offs = ftell f__mesh
  346.             x = readshort f__mesh #unsigned
  347.             y = readshort f__mesh #unsigned
  348.             z = readshort f__mesh #unsigned        
  349.             fseek f__mesh 0x2 #seek_cur        
  350.             u = readshort f__mesh #unsigned
  351.             w = readshort f__mesh #unsigned    
  352.             u_f = u
  353.             w_f = w
  354.             
  355.             fseek f__mesh 0x14 #seek_cur    
  356.             append vert_array [x,y,z]
  357.             append UV_array [u_f,-w_f+1,0]
  358.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  359.             )
  360.         )
  361.         else if  data_chunk1_array[i].data_coding == 0x02025 then (    
  362.         for j = 1 to data_chunk1_array[i].element_number do (
  363.             offs = ftell f__mesh
  364.             x = readshort f__mesh #unsigned
  365.             y = readshort f__mesh #unsigned
  366.             z = readshort f__mesh #unsigned        
  367.             fseek f__mesh 0x2 #seek_cur        
  368.             u = readshort f__mesh #unsigned
  369.             w = readshort f__mesh #unsigned    
  370.             u_f = u
  371.             w_f = w
  372.             
  373.             fseek f__mesh 0x14 #seek_cur    
  374.             append vert_array [x,y,z]
  375.             append UV_array [u_f,-w_f+1,0]
  376.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  377.             )
  378.         )
  379.         else if  data_chunk1_array[i].data_coding == 0x02c2f then (    
  380.         for j = 1 to data_chunk1_array[i].element_number do (
  381.             offs = ftell f__mesh
  382.             x = readshort f__mesh #unsigned
  383.             y = readshort f__mesh #unsigned
  384.             z = readshort f__mesh #unsigned        
  385.             fseek f__mesh 0x2 #seek_cur        
  386.             u = readshort f__mesh #unsigned
  387.             w = readshort f__mesh #unsigned    
  388.             u_f = u
  389.             w_f = w
  390.             
  391.             fseek f__mesh 0x020 #seek_cur    
  392.             append vert_array [x,y,z]
  393.             append UV_array [u_f,-w_f+1,0]
  394.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  395.             )
  396.         )
  397.  
  398.     else if  data_chunk1_array[i].data_coding == 0x0240e then (    
  399.         for j = 1 to data_chunk1_array[i].element_number do (
  400.             offs = ftell f__mesh
  401.             x = readshort f__mesh #unsigned
  402.             y = readshort f__mesh #unsigned
  403.             z = readshort f__mesh #unsigned        
  404.             fseek f__mesh 0x2 #seek_cur        
  405.             u = readshort f__mesh #unsigned
  406.             w = readshort f__mesh #unsigned    
  407.             u_f = u
  408.             w_f = w
  409.             
  410.             fseek f__mesh 0x18 #seek_cur    
  411.             append vert_array [x,y,z]
  412.             append UV_array [u_f,-w_f+1,0]
  413.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  414.             )
  415.         )
  416.     else if  data_chunk1_array[i].data_coding == 0x02428 then (    
  417.         for j = 1 to data_chunk1_array[i].element_number do (
  418.             offs = ftell f__mesh
  419.             x = readshort f__mesh #unsigned
  420.             y = readshort f__mesh #unsigned
  421.             z = readshort f__mesh #unsigned        
  422.             fseek f__mesh 0x2 #seek_cur        
  423.             u = readshort f__mesh #unsigned
  424.             w = readshort f__mesh #unsigned    
  425.             u_f = u
  426.             w_f = w
  427.             
  428.             fseek f__mesh 0x18 #seek_cur    
  429.             append vert_array [x,y,z]
  430.             append UV_array [u_f,-w_f+1,0]
  431.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  432.             )
  433.         )
  434.         
  435.         
  436.         
  437.         
  438.         
  439.         
  440.         
  441.         
  442.         else if  (( data_chunk1_array[i].data_coding / 0x100) >= 0xc) then (    
  443.         for j = 1 to data_chunk1_array[i].element_number do (
  444.             offs = ftell f__mesh
  445.             x = readshort f__mesh #unsigned
  446.             y = readshort f__mesh #unsigned
  447.             z = readshort f__mesh #unsigned        
  448.             fseek f__mesh 0x2 #seek_cur        
  449.             u = readshort f__mesh #unsigned
  450.             w = readshort f__mesh #unsigned    
  451.             u_f = u
  452.             w_f = w
  453.             
  454.             fseek f__mesh ((data_chunk1_array[i].data_coding / 0x100) - 0xc) #seek_cur    
  455.             append vert_array [x,y,z]
  456.             append UV_array [u_f,-w_f+1,0]
  457.             --print((j as string)+"||"+((offs) as string) + "    ||    " + ((x) as string) +"    "+((y) as string)+"    "+((z) as string)+"    ||    "+((u) as string)+"    "+((w) as string))
  458.             )
  459.         ) 
  460.         
  461.         
  462.         
  463.     else(
  464.         print("error reading vertex! unknown coding format:  0x0" + (bit.intAsHex (data_chunk1_array[i].data_coding)) )
  465.         )
  466.         
  467.  
  468.  
  469.  
  470.      if  (( data_chunk1_array[i].data_coding / 0x100) >= 0xc) then (    
  471.  
  472.         for j = 1 to data_chunk1_array[i].element_number do (
  473.         vert_array[j] = [vert_array[j].x * X_VALUE , vert_array[j].y * Y_VALUE , vert_array[j].z * Z_VALUE ]
  474.         UV_array[j] = [UV_array[j].x * U_VALUE / 65536 + U_MIN, UV_array[j].y * V_VALUE / 65536 - V_MIN, 0]
  475.         )
  476.      
  477.     append UV_arrays UV_array
  478.     append vert_arrays vert_array
  479.     )
  480.     print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  481.     print("")
  482.     )
  483.     
  484.     print("")
  485.         print("FACES")
  486.             print("")
  487.     
  488. for i = v1[2] + 1 + submesh_number  to data_chunk1_array.count do ( ---(v1[2]  + submesh_number + submesh_number) do (
  489.         print ("faces mesh number: " + i as string  + "    //    " + ((face_arrays.count + 1 )as string))
  490.  
  491.             if (data_chunk1_array[i].data_coding == 0x0203) do (
  492.  
  493.     print("offset block: 0x0" + (bit.intAsHex (data_chunk1_array[i].offset_block )) +"    size block: 0x0" + (bit.intAsHex (data_chunk1_array[i].size_block )) + "    offset next block: 0x0" + (bit.intAsHex (data_chunk1_array[i].offset_block + data_chunk1_array[i].size_block)))
  494.     fnum = data_chunk1_array[i].size_block / 6
  495.     print("faces number: " + (fnum as string))
  496.         print("data coding: 0x0" + (bit.intAsHex (data_chunk1_array[i].data_coding )))
  497.  
  498.     fseek f__mesh data_chunk1_array[i].offset_block  #seek_set
  499.     
  500.     print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  501.  
  502.     face_array = #()
  503.     m = 0
  504.     for j = 1 to fnum do (
  505.         offs = ftell f__mesh
  506.         x = (readshort f__mesh #unsigned) + 1
  507.         y = (readshort f__mesh #unsigned) + 1
  508.         z = (readshort f__mesh #unsigned) + 1    
  509.         if x > m do m = x
  510.         if y > m do m = y
  511.         if z > m do m = z
  512.         --print((j as string) + "        " +([x,y,z] as string) )
  513.         append face_array [x,y,z]
  514.         )
  515.  
  516.     append face_arrays face_array
  517.     print ("m: " + (m as string))
  518.     append ms m
  519.     data_chunk1_array[i].m = m
  520.     print("offset: 0x0" + (bit.intAsHex (ftell f__mesh)) +"   ")
  521.     print("")
  522.     )
  523.     )    
  524.     
  525.     vert_ar_temp12 = #()
  526.     
  527.     for i = 1 to submesh_number do (
  528.                 --msh = mesh name:((i as string) + "__f" + (face_arrays[i].count as string) + "__v" + (vert_arrays[i].count as string)) vertices:vert_arrays[i] faces:vert_ar_temp12
  529.  
  530.         try(
  531.             msh = mesh name:((i as string) + "__f" + (face_arrays[i].count as string) + "__v" + (vert_arrays[i].count as string)) vertices:vert_arrays[i] faces:face_arrays[i]    
  532.             setNumTVerts msh UV_arrays[i].count        
  533.             for j = 1 to UV_arrays[i].count do (setTVert msh j UV_arrays[i][j]) 
  534.             buildTVFaces msh false
  535.             for j = 1 to face_arrays[i].count do (setTVFace msh j face_arrays[i][j])
  536.             )
  537.         catch(
  538.             print("ERROR CREATING MESH " + (i as string)) --- "        number faces: " + (face_arrays[i].count as string) + "        number vertex: " + (vert_arrays[i].count as string) + "        found vertex: " + (ms[i] as string))
  539.             
  540.             )
  541.             
  542.     )
  543.     
  544.     
  545.     
  546.     
  547.     
  548.     
  549.     
  550.     
  551.     
  552.     
  553.     
  554.     
  555.     
  556.     
  557.     
  558.     fclose f__mesh
  559.  
  560.     --)
  561.     --catch (
  562.     --print("FILE_IMPORT_ERROR: " + file_array[i] + "   size:  " + ((getFileSize(file_array[i])) as string))
  563.     --)
  564.     
  565. )