+ for( int l=0; l<solid->count; l++ )
+ if( loop->poly_right == solid_buffer[solid->start+l] )
+ {
+ interior_count ++;
+ goto next;
+ }
+
+ next:;
+ }
+
+ if( interior_count < poly->loop_total-1 )
+ {
+ split_total ++;
+ continue;
+ }
+
+ temp_solid[ temp_solid_len ++ ] = solid_buffer[solid->start+j];
+ }
+
+ if( temp_solid_len < 3 || (split_total & 0x2) /* unkown reasons */ )
+ {
+ }
+ else
+ {
+ /* Overwrite original solid */
+ for( int j=0; j<temp_solid_len; j++ )
+ solid_buffer[ solid->start+j ] = temp_solid[ j ];
+
+ solid->count = temp_solid_len;
+ }
+
+ free( temp_solid );
+ }