Index: trunk/nv/bullet/bullet_world.hh
===================================================================
--- trunk/nv/bullet/bullet_world.hh	(revision 524)
+++ trunk/nv/bullet/bullet_world.hh	(revision 525)
@@ -29,5 +29,5 @@
 		virtual collision_shape create_box( const vec3& half_extens );
 		virtual collision_shape create_static_plane( const vec3& norm, float cst );
-		virtual collision_shape create_mesh( array_view< vec3 > vtx, array_view< int > idx );
+		virtual collision_shape create_mesh( array_view< vec3 > vtx, array_view< uint32 > idx );
 		virtual rigid_body create_rigid_body( float mass, const transform& tr, collision_shape shape, const vec3& com_offset = vec3() );
 		virtual constraint create_hinge_constraint( rigid_body a, const transform& ta, rigid_body b, const transform& tb, const vec2& low_high, const vec3& params = vec3( 0.9f, 0.3f, 1.0f ) );
Index: trunk/nv/engine/model_manager.hh
===================================================================
--- trunk/nv/engine/model_manager.hh	(revision 524)
+++ trunk/nv/engine/model_manager.hh	(revision 525)
@@ -85,4 +85,5 @@
 		resource< animator_data >      animator;
 		resource< animator_bind_data > bind_data;
+		resource< data_channel_set >   phx_mesh;
 		// TODO: change to resource
 		string32                       ragdoll_id;
@@ -106,4 +107,5 @@
 	{
 		flat_model_element             elements[32];
+		resource< data_channel_set >   phx_mesh;
 		uint32                         count;
 		shash64                        attach;
@@ -160,4 +162,5 @@
 			result.flags = m->flags;
 			result.count = 0;
+			result.phx_mesh = m->phx_mesh;
 			flatten( result, m, rng, control, transform(), -1, map, gen_flags, 0, select );
 			return result;
Index: trunk/nv/interface/context.hh
===================================================================
--- trunk/nv/interface/context.hh	(revision 524)
+++ trunk/nv/interface/context.hh	(revision 525)
@@ -261,6 +261,6 @@
 		vertex_array create_vertex_array( const VTX* v, size_t vcount, const IDX* i, size_t icount, buffer_hint hint )
 		{
-			buffer       vb = create_buffer( VERTEX_BUFFER, hint, count * sizeof( VTX ), v );
-			buffer       ib = create_buffer( INDEX_BUFFER, hint, icount * sizeof( IDX ), i );
+			buffer       vb = this->create_buffer( VERTEX_BUFFER, hint, count * sizeof( VTX ), v );
+			buffer       ib = this->create_buffer( INDEX_BUFFER, hint, icount * sizeof( IDX ), i );
 			vertex_array_desc desc;
 			desc.add_vertex_buffers< VTX >( vb, true );
Index: trunk/nv/interface/physics_world.hh
===================================================================
--- trunk/nv/interface/physics_world.hh	(revision 524)
+++ trunk/nv/interface/physics_world.hh	(revision 525)
@@ -68,5 +68,5 @@
 	public:
 		virtual int step_simulation( float dtime, int max_sub_steps = 1, float fixed_time_step = 1.0f / 60.0f ) = 0;
-		virtual collision_shape create_mesh( array_view< vec3 > vtx, array_view< int > idx ) = 0;
+		virtual collision_shape create_mesh( array_view< vec3 > vtx, array_view< uint32 > idx ) = 0;
 		virtual collision_shape create_sphere( float radius ) = 0;
 		virtual collision_shape create_capsule( float radius, float height ) = 0;
Index: trunk/src/bullet/bullet_world.cc
===================================================================
--- trunk/src/bullet/bullet_world.cc	(revision 524)
+++ trunk/src/bullet/bullet_world.cc	(revision 525)
@@ -121,5 +121,5 @@
 }
 
-nv::collision_shape nv::bullet_world::create_mesh( array_view< vec3 > vtx, array_view< int > idx )
+nv::collision_shape nv::bullet_world::create_mesh( array_view< vec3 > vtx, array_view< uint32 > idx )
 {
 	btTriangleMesh* mesh = new btTriangleMesh;
@@ -274,5 +274,5 @@
 {
 	if ( !sh.internal ) return;
-	if ( sh.mesh );
+	if ( sh.mesh )
 	{
 		btStridingMeshInterface* smi = static_cast<btStridingMeshInterface*>( sh.mesh );
