Index: trunk/src/engine/particle_engine.cc
===================================================================
--- trunk/src/engine/particle_engine.cc	(revision 438)
+++ trunk/src/engine/particle_engine.cc	(revision 439)
@@ -302,6 +302,6 @@
 void nv::particle_engine::load( lua::table_guard& table )
 {
-	std::string id = table.get_std_string( "id" );
-	if ( id == "" )
+	shash64 id = table.get_string_hash_64( "id" );
+	if ( !id.valid() )
 	{
 		NV_LOG_ERROR( "Bad table passed to particle_engine!" )
@@ -355,6 +355,6 @@
 	{
 		lua::table_guard element( table, i+1 );
-		const_string type     = element.get_string("type");
-		std::string sub_type = element.get_std_string("sub_type");
+		const_string type     = element.get_string( "type" );
+		const_string sub_type = element.get_string( "sub_type" );
 		if ( type == "emmiter" )
 		{
@@ -370,5 +370,5 @@
 				{
 					edata.emmiter_func = nv_particle_emmiter_point;
-					NV_LOG_WARNING( "Unknown emmiter type in particle system! (", sub_type.c_str(), ")" );
+					NV_LOG_WARNING( "Unknown emmiter type in particle system! (", sub_type, ")" );
 				}
 
@@ -435,5 +435,5 @@
 					{
 						data.affector_count--;
-						NV_LOG_WARNING( "Bad data passed to ", string_view( sub_type.c_str(), sub_type.size() ), " affector in particle system!" );
+						NV_LOG_WARNING( "Bad data passed to ", sub_type, " affector in particle system!" );
 					}
 				}
@@ -441,5 +441,5 @@
 				{
 					data.affector_count--;
-					NV_LOG_WARNING( "Unknown affector type in particle system! (", string_view( sub_type.c_str(), sub_type.size() ), ")" );
+					NV_LOG_WARNING( "Unknown affector type in particle system! (", sub_type, ")" );
 				}
 			}
@@ -469,5 +469,5 @@
 }
 
-nv::particle_system nv::particle_engine::create_system( const std::string& id )
+nv::particle_system nv::particle_engine::create_system( const string_view& id )
 {
 	auto it = m_names.find( id );
@@ -823,5 +823,5 @@
 }
 
-void nv::particle_engine::register_emmiter_type( const std::string& name, particle_emmiter_func func )
+void nv::particle_engine::register_emmiter_type( const string_view& name, particle_emmiter_func func )
 {
 	m_emmiters[ name ] = func;
@@ -842,5 +842,5 @@
 }
 
-void nv::particle_engine::register_affector_type( const std::string& name, particle_affector_init_func init, particle_affector_func process )
+void nv::particle_engine::register_affector_type( const string_view& name, particle_affector_init_func init, particle_affector_func process )
 {
 	m_affectors[ name ].init    = init;
