Exemple #1
0
void CCollisionComponent::InitFromStructure( Script::CStruct* pParams )
{	
	Dbg_MsgAssert( pParams, ( "No node data?" ) );
	Dbg_MsgAssert( !mp_collision, ( "Set up collision twice?" ) );

	uint32 col_type_checksum = Nx::vCOLL_TYPE_NONE;
	pParams->GetChecksum( CRCD(0x2d7e583b,"CollisionMode"), &col_type_checksum );
	
	Nx::CollType col_type = Nx::CCollObj::sConvertTypeChecksum( col_type_checksum );
	if ( col_type != Nx::vCOLL_TYPE_NONE )
	{
		uint32 class_checksum = 0;
		pParams->GetChecksum("class", &class_checksum);
		if ( class_checksum == CRCD(0xb7b3bd86,"LevelObject") )
		{
			uint32 name;
			pParams->GetChecksum(CRCD(0xa1dc81f9,"name"), &name, Script::ASSERT);
			Nx::CSector *p_sector = Nx::CEngine::sGetSector(name);
			Dbg_MsgAssert( p_sector, ( "WARNING: sGetSector(0x%x) returned NULL (%s)\n", name, Script::FindChecksumName(name) ) );
			Nx::CCollObjTriData *p_coll_tri_data = p_sector->GetCollSector()->GetGeometry();
			InitCollision(col_type, p_coll_tri_data);   
		}
		else
		{
			InitCollision(col_type);
		}
	}
}
Exemple #2
0
void Physics::ResetCollision( void )
{
	ExitCollision();
	InitCollision();
}