コード例 #1
0
EBTNodeResult::Type UChooseNextWaypoint::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
	// Get the patrol route
	auto ControlledPawn = OwnerComp.GetAIOwner()->GetPawn();
	auto PatrolRoute = ControlledPawn->FindComponentByClass<UPatrolRoute>();
	if (!ensure(PatrolRoute)) { return EBTNodeResult::Failed; }

	// Warn about empty patrol routes
	auto PatrolPoints = PatrolRoute->GetPatrolPoints();
	if (PatrolPoints.Num() == 0)
	{
		UE_LOG(LogTemp, Warning, TEXT("A guard is missing patrol points."));
		return EBTNodeResult::Failed;
	}

	// Set the next waypoint
	auto BlackboardComp = OwnerComp.GetBlackboardComponent();
	auto Index = BlackboardComp->GetValueAsInt(IndexKey.SelectedKeyName);
	BlackboardComp->SetValueAsObject(WaypointKey.SelectedKeyName, PatrolPoints[Index]);
	
	// Cycle the index
	auto NextIndex = (Index + 1) % PatrolPoints.Num();
	BlackboardComp->SetValueAsInt(IndexKey.SelectedKeyName, NextIndex);

	// UE_LOG(LogTemp, Warning, TEXT("Waypoint index: %i"), Index);

	return EBTNodeResult::Succeeded;
}
コード例 #2
0
ファイル: ServerScan.cpp プロジェクト: tankorsmash/quadcow
/*
================
idServerScan::InfoResponse
================
*/
int idServerScan::InfoResponse( networkServer_t &server ) {
	if ( scan_state == IDLE ) {
		return false;
	}

	idStr serv = Sys_NetAdrToString( server.adr );

	if ( server.challenge != challenge ) {
		common->DPrintf( "idServerScan::InfoResponse - ignoring response from %s, wrong challenge %d.", serv.c_str(), server.challenge );
		return false;
	}

	if ( scan_state == NET_SCAN ) {	
		const idKeyValue *info = net_info.FindKey( serv.c_str() );
		if ( !info ) {
			common->DPrintf( "idServerScan::InfoResponse NET_SCAN: reply from unknown %s\n", serv.c_str() );
			return false;
		}
		int id = atoi( info->GetValue() );
		net_info.Delete( serv.c_str() );
		inServer_t iserv = net_servers[ id ];
		server.ping = Sys_Milliseconds() - iserv.time;
		server.id = iserv.id;
	} else {
		server.ping = Sys_Milliseconds() - lan_pingtime;
		server.id = 0;

		// check for duplicate servers
		for ( int i = 0; i < Num() ; i++ ) {
			if ( memcmp( &(*this)[ i ].adr, &server.adr, sizeof(netadr_t) ) == 0 ) {
				common->DPrintf( "idServerScan::InfoResponse LAN_SCAN: duplicate server %s\n", serv.c_str() );
				return true;
			}
		}
	}

	const char *si_map = server.serverInfo.GetString( "si_map" );
	const idDecl *mapDecl = declManager->FindType( DECL_MAPDEF, si_map, false );
	const idDeclEntityDef *mapDef = static_cast< const idDeclEntityDef * >( mapDecl );
	if ( mapDef ) {
		const char *mapName = common->GetLanguageDict()->GetString( mapDef->dict.GetString( "name", si_map ) );
		server.serverInfo.Set( "si_mapName", mapName );
	} else {
		server.serverInfo.Set( "si_mapName", si_map );
	}

	int index = Append( server );
	// for now, don't maintain sorting when adding new info response servers
	m_sortedServers.Append( Num()-1 );
	if ( listGUI->IsConfigured( ) && !IsFiltered( server ) ) {
		GUIAdd( Num()-1, server );
	}
	if ( listGUI->GetSelection( NULL, 0 ) == ( Num()-1 ) ) {
		GUIUpdateSelected();
	}

	return index;
}
コード例 #3
0
FText FSimpleAssetEditor::GetToolkitName() const
{
	const auto EditingObjects = GetEditingObjects();

	check( EditingObjects.Num() > 0 );

	FFormatNamedArguments Args;
	Args.Add( TEXT("ToolkitName"), GetBaseToolkitName() );

	if( EditingObjects.Num() == 1 )
	{
		const UObject* EditingObject = EditingObjects[ 0 ];

		const bool bDirtyState = EditingObject->GetOutermost()->IsDirty();

		Args.Add( TEXT("ObjectName"), FText::FromString( EditingObject->GetName() ) );
		Args.Add( TEXT("DirtyState"), bDirtyState ? FText::FromString( TEXT( "*" ) ) : FText::GetEmpty() );
		return FText::Format( LOCTEXT("ToolkitTitle", "{ObjectName}{DirtyState} - {ToolkitName}"), Args );
	}
	else
	{
		bool bDirtyState = false;
		UClass* SharedBaseClass = NULL;
		for( int32 x = 0; x < EditingObjects.Num(); ++x )
		{
			UObject* Obj = EditingObjects[ x ];
			check( Obj );

			UClass* ObjClass = Cast<UClass>(Obj);
			if (ObjClass == NULL)
			{
				ObjClass = Obj->GetClass();
			}
			check( ObjClass );

			// Initialize with the class of the first object we encounter.
			if( SharedBaseClass == NULL )
			{
				SharedBaseClass = ObjClass;
			}

			// If we've encountered an object that's not a subclass of the current best baseclass,
			// climb up a step in the class hierarchy.
			while( !ObjClass->IsChildOf( SharedBaseClass ) )
			{
				SharedBaseClass = SharedBaseClass->GetSuperClass();
			}

			// If any of the objects are dirty, flag the label
			bDirtyState |= Obj->GetOutermost()->IsDirty();
		}

		Args.Add( TEXT("NumberOfObjects"), EditingObjects.Num() );
		Args.Add( TEXT("ClassName"), FText::FromString( SharedBaseClass->GetName() ) );
		Args.Add( TEXT("DirtyState"), bDirtyState ? FText::FromString( TEXT( "*" ) ) : FText::GetEmpty() );
		return FText::Format( LOCTEXT("ToolkitTitle_EditingMultiple", "{NumberOfObjects} {ClassName}{DirtyState} - {ToolkitName}"), Args );
	}
}
コード例 #4
0
		forn(i, N){
			int j = (N - i) & (N - 1);
			Num a1 = (ta[i] + conj(ta[j])) * Num(0.5, 0);
			Num a2 = (ta[i] - conj(ta[j])) * Num(0, -0.5);
			Num b1 = (tb[i] + conj(tb[j])) * Num(0.5 / N, 0);
			Num b2 = (tb[i] - conj(tb[j])) * Num(0, -0.5 / N);
			tf[j] = a1 * b1 + a2 * b2 * Num(0, 1);
			tg[j] = a1 * b2 + a2 * b1;
		}
コード例 #5
0
void FSCSEditorViewportClient::DrawCanvas( FViewport& InViewport, FSceneView& View, FCanvas& Canvas )
{
	AActor* PreviewActor = GetPreviewActor();
	if(PreviewActor)
	{
		TGuardValue<bool> AutoRestore(GAllowActorScriptExecutionInEditor, true);

		const int32 HalfX = 0.5f * Viewport->GetSizeXY().X;
		const int32 HalfY = 0.5f * Viewport->GetSizeXY().Y;

		auto SelectedNodes = BlueprintEditorPtr.Pin()->GetSelectedSCSEditorTreeNodes();
		if(bIsManipulating && SelectedNodes.Num() > 0)
		{
			USceneComponent* SceneComp = Cast<USceneComponent>(SelectedNodes[0]->FindComponentInstanceInActor(PreviewActor, true));
			if(SceneComp)
			{
				const FVector WidgetLocation = GetWidgetLocation();
				const FPlane Proj = View.Project(WidgetLocation);
				if(Proj.W > 0.0f)
				{
					const int32 XPos = HalfX + (HalfX * Proj.X);
					const int32 YPos = HalfY + (HalfY * (Proj.Y * -1));
					DrawAngles(&Canvas, XPos, YPos, GetCurrentWidgetAxis(), GetWidgetMode(), GetWidgetCoordSystem().Rotator(), WidgetLocation);
				}
			}
		}
	}
}
コード例 #6
0
ファイル: ActionQueue.cpp プロジェクト: krazzei/ggj16_slamjam
void FActionQueue::Add(ECharMoveState Action)
{
	GLog->Log("Adding: " + FString::FromInt((int32)Action));
	
	if (MoveList.Num() == 3)
	{
		auto Last = MoveList.Last();
		MoveList.Remove(Last);
	}
	
	// This is no longer reverse.
	auto Reverse = TArray<ECharMoveState>();
	
	for (int32 i = 0; i < MoveList.Num(); ++i)
	{
		Reverse.Add(MoveList[i]);
	}
	
	MoveList.Empty();
	
	MoveList.Add(Action);
	
	for (int32 i = 0; i < Reverse.Num(); ++i)
	{
		GLog->Log(FString::FromInt((int32)Reverse[i]));
		MoveList.Add(Reverse[i]);
	}
}
コード例 #7
0
ファイル: main.cpp プロジェクト: UCSD-PL/ivt
int main()
{
  Num ft = Num(42);
  Base<Num>* bp= new Base<Num>(ft);
  std::cout << bp->get().x << std::endl;
  return 0;
}
コード例 #8
0
void idMultiWinVar::Set( const char* val )
{
	for( int i = 0; i < Num(); i++ )
	{
		( *this )[i]->Set( val );
	}
}
コード例 #9
0
ファイル: ServerScan.cpp プロジェクト: revelator/MHDoom
/*
================
idServerScan::GUIUpdateSelected
================
*/
void idServerScan::GUIUpdateSelected( void )
{
	char screenshot[MAX_STRING_CHARS];
	
	if( !m_pGUI )
	{
		return;
	}
	
	int i = listGUI->GetSelection( NULL, 0 );
	
	if( i == -1 || i >= Num() )
	{
		m_pGUI->SetStateString( "server_name", "" );
		m_pGUI->SetStateString( "player1", "" );
		m_pGUI->SetStateString( "player2", "" );
		m_pGUI->SetStateString( "player3", "" );
		m_pGUI->SetStateString( "player4", "" );
		m_pGUI->SetStateString( "player5", "" );
		m_pGUI->SetStateString( "player6", "" );
		m_pGUI->SetStateString( "player7", "" );
		m_pGUI->SetStateString( "player8", "" );
		m_pGUI->SetStateString( "server_map", "" );
		m_pGUI->SetStateString( "browser_levelshot", "" );
		m_pGUI->SetStateString( "server_gameType", "" );
		m_pGUI->SetStateString( "server_IP", "" );
		m_pGUI->SetStateString( "server_passworded", "" );
	}
	else
	{
		m_pGUI->SetStateString( "server_name", ( *this ) [i].serverInfo.GetString( "si_name" ) );
		
		for( int j = 0; j < 8; j++ )
		{
			if( ( *this ) [i].clients > j )
			{
				m_pGUI->SetStateString( va( "player%i", j + 1 ) , ( *this ) [i].nickname[j] );
			}
			else
			{
				m_pGUI->SetStateString( va( "player%i", j + 1 ) , "" );
			}
		}
		
		m_pGUI->SetStateString( "server_map", ( *this ) [i].serverInfo.GetString( "si_mapName" ) );
		fileSystem->FindMapScreenshot( ( *this ) [i].serverInfo.GetString( "si_map" ), screenshot, MAX_STRING_CHARS );
		m_pGUI->SetStateString( "browser_levelshot", screenshot );
		m_pGUI->SetStateString( "server_gameType", ( *this ) [i].serverInfo.GetString( "si_gameType" ) );
		m_pGUI->SetStateString( "server_IP", Sys_NetAdrToString( ( *this ) [i].adr ) );
		
		if( ( *this ) [i].serverInfo.GetBool( "si_usePass" ) )
		{
			m_pGUI->SetStateString( "server_passworded", "PASSWORD REQUIRED" );
		}
		else
		{
			m_pGUI->SetStateString( "server_passworded", "" );
		}
	}
}
コード例 #10
0
void idMultiWinVar::SetGuiInfo( idDict* dict )
{
	for( int i = 0; i < Num(); i++ )
	{
		( *this )[i]->SetGuiInfo( dict, ( *this )[i]->c_str() );
	}
}
コード例 #11
0
ファイル: gamecore.cpp プロジェクト: CytraL/MineTee
bool CTuningParams::Get(int Index, float *pValue)
{
	if(Index < 0 || Index >= Num())
		return false;
	*pValue = (float)((CTuneParam *)this)[Index];
	return true;
}
コード例 #12
0
ファイル: gamecore.cpp プロジェクト: CytraL/MineTee
bool CTuningParams::Set(int Index, float Value)
{
	if(Index < 0 || Index >= Num())
		return false;
	((CTuneParam *)this)[Index] = Value;
	return true;
}
コード例 #13
0
void ACVehicleSpawner::OnTimer() {
	FTimerHandle Handle;
	if (!Active || Paused) {
		GetWorld()->GetTimerManager().SetTimer(Handle, this, &ACVehicleSpawner::OnTimer, GetTimeWait(), false);
		return;
	}

	if (Bucket.Num() == 0) {
		GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, TEXT("You need to add Vehicle Types to the Vehicle Spawner"));
	}

	FVector StartTrace = GetActorLocation() - GetActorForwardVector() * 400 + FVector(0, 0, 100);
	FVector EndTrace = GetActorLocation() + GetActorForwardVector() * 400 + FVector(0, 0, 100);
	if (GetWorld()->LineTraceTest(
			StartTrace,
			EndTrace,
			ECollisionChannel::ECC_Vehicle,
			FCollisionQueryParams(),
			FCollisionResponseParams()
			)) {
		GetWorld()->GetTimerManager().SetTimer(Handle, this, &ACVehicleSpawner::OnTimer, 0.1f, false);
		return;
	}

	FActorSpawnParameters spawnParameters;
	spawnParameters.bNoCollisionFail = true;
	spawnParameters.Owner = this;
	spawnParameters.Instigator = NULL;
	spawnParameters.bDeferConstruction = false;

	int32 BucketIndex = FMath::RandRange(0, Bucket.Num() - 1);

	EVehicleType VehicleType = Bucket[BucketIndex];
	Bucket.RemoveAtSwap(BucketIndex);

	if (Bucket.Num() == 0) {
		TurnBucket();
	}

	TSubclassOf<class AFlockingVehicle> Type = VehicleTypeClass[(uint8)VehicleType];
	AFlockingVehicle* NewVehicle = GetWorld()->SpawnActor<AFlockingVehicle>(Type, GetActorLocation(), GetActorRotation(), spawnParameters);

	NewVehicle->SetFlockingState(FlockingState);
	NewVehicle->SpawnDefaultController();
	NewVehicle->GetMesh()->SetAllPhysicsLinearVelocity(GetActorForwardVector() * StartSpeed / 0.036);

	if (NewVehicle->VehicleType != VehicleType) {
		GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, TEXT("Vehicle Type is not correct."));
	}

	GetWorld()->GetTimerManager().SetTimer(Handle, this, &ACVehicleSpawner::OnTimer, GetTimeWait(), false);

	if (VehicleTypeMaterials.Contains((uint8)VehicleType)) {
		auto Materials = VehicleTypeMaterials[(uint8)VehicleType];
		int32 Index = FMath::RandRange(0, Materials.Num() - 1);
		UMaterial* Material = Materials[Index];
		NewVehicle->GetMesh()->SetMaterial(2, Material);
		NewVehicle->ColorMaterialIndex = Index;
	}
}
コード例 #14
0
ファイル: AddAndOr.c プロジェクト: Fireplusplus/Code_C
int main()
{
	int ret = Num(5, 1);
	printf("%d\n", ret);

	return 0;
}
コード例 #15
0
void MyZKbMain::Probabilidad(int valor)
{

	int valx1=valor; int valx2=valor+1; int valx3=valor+3; int valx4=valor+4;
	ZConfig Num(QString("numeros.cfg"), true);
	int val1= Num.readNumEntry(QString("NUMEROS"), QString("%1").arg(valx1), 0);
	int val2= Num.readNumEntry(QString("NUMEROS"), QString("%1").arg(valx2), 0);
	int val3= Num.readNumEntry(QString("NUMEROS"), QString("%1").arg(valx3), 0);
	int val4= Num.readNumEntry(QString("NUMEROS"), QString("%1").arg(valx4), 0);

	QPixmap pm; pm.load("ruleta_usr.png");
	QString agregar="SI";
	if (( val1 == 0 ) && ( val2 > 0 ) && (val3 > 0) && (val4 > 0))
	{ for ( int j=0 ; j < lista.count(); ++j ) { if ( QString("%1").arg(valx1) == QString("%1").arg(lista[j]) ) { agregar="NO"; } }
	  if ( agregar == "SI" ) { system(QString("echo \"Probable: %1\"").arg(valx1)); lista += QString("%1").arg(valx1); }
	} else { }

	if (( val1 > 0 ) && ( val2 == 0 ) && (val3 > 0) && (val4 > 0))
	{ for ( int j=0 ; j < lista.count(); ++j ) { if ( QString("%1").arg(valx2) == QString("%1").arg(lista[j]) ) { agregar="NO"; } }
	  if ( agregar == "SI" ) { system(QString("echo \"Probable: %1\"").arg(valx2)); lista += QString("%1").arg(valx2); }
	} else { }

	if (( val1 > 0 ) && ( val2 > 0 ) && (val3 == 0) && (val4 > 0))
	{ for ( int j=0 ; j < lista.count(); ++j ) { if ( QString("%1").arg(valx3) == QString("%1").arg(lista[j]) ) { agregar="NO"; } }
	  if ( agregar == "SI" ) { system(QString("echo \"Probable: %1\"").arg(valx3)); lista += QString("%1").arg(valx3); }
	} else { }

	if (( val1 > 0 ) && ( val2 > 0 ) && (val3 > 0) && (val4 == 0))
	{ for ( int j=0 ; j < lista.count(); ++j ) { if ( QString("%1").arg(valx4) == QString("%1").arg(lista[j]) ) { agregar="NO"; } }
	  if ( agregar == "SI" ) { system(QString("echo \"Probable: %1\"").arg(valx4)); lista += QString("%1").arg(valx4); }
	} else { }


}
コード例 #16
0
void idMultiWinVar::Update()
{
	for( int i = 0; i < Num(); i++ )
	{
		( *this )[i]->Update();
	}
}
コード例 #17
0
/*
====================
idListGUILocal::StateChanged
====================
*/
void idListGUILocal::StateChanged() {
	int i;

	if ( !m_stateUpdates ) {
		return;
	}

	for( i = 0; i < Num(); i++ ) {
		m_pGUI->SetStateString( va( "%s_item_%i", m_name.c_str(), i ), (*this)[i].c_str() ); 
	}
	for( i = Num() ; i < m_water ; i++ ) {
		m_pGUI->SetStateString( va( "%s_item_%i", m_name.c_str(), i ), "" );
	}
	m_water = Num();
	m_pGUI->StateChanged( com_frameTime );
}
コード例 #18
0
ファイル: gamecore.cpp プロジェクト: CytraL/MineTee
bool CTuningParams::Set(const char *pName, float Value)
{
	for(int i = 0; i < Num(); i++)
		if(str_comp_nocase(pName, m_apNames[i]) == 0)
			return Set(i, Value);
	return false;
}
コード例 #19
0
ファイル: Messages.hpp プロジェクト: hoxnox/csio
inline bool
Message::operator<(const Message& rhv) const
{
	if(Num() < rhv.Num())
		return true;
	return false;
}
コード例 #20
0
void UInterpTrackAkAudioEvent::UpdateTrack(float NewPosition, UInterpTrackInst* TrInst, bool bJump)
{
	if (Events.Num() <= 0)
	{
		//UE_LOG(LogMatinee, Warning,TEXT("No sounds for sound track %s"),*GetName());
		return;
	}

	UInterpTrackInstAkAudioEvent* EventInst = CastChecked<UInterpTrackInstAkAudioEvent>(TrInst);

	// Only play AkEvents if we are playing Matinee forwards, and 
	if(NewPosition > EventInst->LastUpdatePosition && !bJump)
	{
		// Find which sound we are starting in. -1 Means before first sound.
		int32 StartEventIdx = -1; 
		for( StartEventIdx = -1; StartEventIdx<Events.Num()-1 && Events[StartEventIdx+1].Time < EventInst->LastUpdatePosition; StartEventIdx++);

		// Find which sound we are ending in. -1 Means before first sound.
		int32 EndEventIdx = -1; 
		for( EndEventIdx = -1; EndEventIdx<Events.Num()-1 && Events[EndEventIdx+1].Time < NewPosition; EndEventIdx++);

		// If we have moved into a new sound, we should start playing it now.
		if(StartEventIdx != EndEventIdx)
		{
			FAkAudioEventTrackKey & AkEvenTrackKey = GetAkEventTrackKeyAtPosition(NewPosition);
			UAkAudioEvent* AkEvent = AkEvenTrackKey.AkAudioEvent;
			AActor* Actor = TrInst->GetGroupActor();

			FAkAudioDevice * AudioDevice = FAkAudioDevice::Get();
			if (AudioDevice)
			{
				if (AkEvent)
				{
					AudioDevice->PostEvent(AkEvent, Actor);
				}
				else
				{
					AudioDevice->PostEvent(AkEvenTrackKey.EventName, Actor);
				}
			}
		}
	}

	// Finally update the current position as the last one.
	EventInst->LastUpdatePosition = NewPosition;
}
コード例 #21
0
/**--------------------------------------------------------------------------<BR>
CRandomNumber::GetInt
\brief Gets an integer based on the settings. Sets up temporary new boundaries so that an interval
of e.g. 0.8 to 3.7 will become 1.0 to 3.0 allowing integers 1 and 2 only.
<P>---------------------------------------------------------------------------*/
int CRandomNumber::GetInt(void) const
{
    CRandomNumber Num(ceil(m_dMin), floor(m_dMax) + 1.0);
	double dRes = Num.Get();
	if (dRes == (int)Num.GetMax())
		return (int) (dRes - 1);
	else 
		return (int) dRes;
}
コード例 #22
0
UBlueprint* FGameplayAbilitiesEditor::GetBlueprintObj() const
{
	auto EditingObjects = GetEditingObjects();
	for (int32 i = 0; i < EditingObjects.Num(); ++i)
	{
		if (EditingObjects[i]->IsA<UGameplayAbilityBlueprint>()) { return (UBlueprint*)EditingObjects[i]; }
	}
	return NULL;
}
コード例 #23
0
void CRTF_SummaryBuilder::AddSummaryRow(	CRtfDocumentChainBuilder* pHost,
											CRTF_Table* pTable, 
											CRTF_CharacterProperties* pChProps,
											int iRowIndex, CChangeGroup* pGroup)
{
	int iMin = pGroup->GetFirstChangeNum();
	int iMax = pGroup->GetLastChangeNum();
	int iType = pGroup->GetType();

	LPCWSTR szType = pHost->m_Options.GetSummaryDescription(iType);

	CRTF_Bookmark* pBkmkStart = CRTF_Bookmark::CreateBookmark(m_pContext, pTable->GetModality(), "_DV_S%d",iMin,false);/* TXTEX_IGNORE */
	CRTF_Bookmark* pBkmkEnd   = CRTF_Bookmark::CreateBookmark(m_pContext, pTable->GetModality(),  "_DV_S%d",iMin,true );/* TXTEX_IGNORE */
	if (iMin==iMax)
	{
		pTable->Cell(0, iRowIndex)->AddText(CreateTableText(Num(iMin), pChProps));
	}
	else
	{
		pTable->Cell(0,iRowIndex)->AddText(CreateTableText(Num(iMax),pChProps));
		pTable->Cell(0,iRowIndex)->AddText(CreateTableText("-",pChProps));/* TXTEX_IGNORE */
		pTable->Cell(0,iRowIndex)->AddText(CreateTableText(Num(iMin),pChProps));
	}
	pTable->Cell(0, iRowIndex)->AddText(pBkmkStart);
	pTable->Cell(1, iRowIndex)->AddText(CreateTableText(szType, pChProps));
	pTable->Cell(2, iRowIndex)->AddText(pBkmkEnd);

	if (iMax>iMin)
	{
		for (int i=iMin+1; i<=iMax ; i++)
		{
			pBkmkStart = CRTF_Bookmark::CreateBookmark(m_pContext, pTable->GetModality(),  "_DV_S%d",i,false);/* TXTEX_IGNORE */ 						
			pBkmkEnd = CRTF_Bookmark::CreateBookmark(m_pContext, pTable->GetModality(),  "_DV_S%d",i,true);	  /* TXTEX_IGNORE */ 						
			pTable->Cell(2, iRowIndex)->AddText(pBkmkEnd);
			pTable->Cell(0, iRowIndex)->AddText(pBkmkStart);
		}
	}

	CRTF_Cell* pCell=pTable->Cell(2,iRowIndex);

	CChainElement_Rtf* pCellText = BuildCellContentForChangeText(pHost, pChProps, pGroup);

	pCell->AddText(pCellText);
}
コード例 #24
0
ファイル: DiffUtils.cpp プロジェクト: kidaa/UnrealEngineVR
int32 DiffTreeView::CurrentDifference(TSharedRef< STreeView<TSharedPtr< FBlueprintDifferenceTreeEntry > > > TreeView, const TArray< TSharedPtr<class FBlueprintDifferenceTreeEntry> >& Differences)
{
	auto SelectedItems = TreeView->GetSelectedItems();
	if (SelectedItems.Num() == 0)
	{
		return INDEX_NONE;
	}

	for (int32 Iter = 0; Iter < SelectedItems.Num(); ++Iter)
	{
		int32 Index = Differences.Find(SelectedItems[Iter]);
		if (Index != INDEX_NONE)
		{
			return Index;
		}
	}

	return INDEX_NONE;
}
コード例 #25
0
void UTankTrack::DriveTrack(float CurrentThrottle)
{
	auto ForceApplied = CurrentThrottle * TrackMaxDrivingForce;
	auto Wheels = GetWheels();
	auto ForcePerWheel = ForceApplied / Wheels.Num();
	for (ASprungWheel* Wheel : Wheels)
	{
		Wheel->AddDrivingForce(ForcePerWheel);
	}
}
コード例 #26
0
void SComponentClassCombo::OnSearchBoxTextCommitted(const FText& NewText, ETextCommit::Type CommitInfo)
{
	if(CommitInfo == ETextCommit::OnEnter)
	{
		auto SelectedItems = ComponentClassListView->GetSelectedItems();
		if(SelectedItems.Num() > 0)
		{
			ComponentClassListView->SetSelection(SelectedItems[0]);
		}
	}
}
コード例 #27
0
void SKeySelector::OnFilterTextCommitted(const FText& NewText, ETextCommit::Type CommitInfo)
{
	if (CommitInfo == ETextCommit::OnEnter)
	{
		auto SelectedItems = KeyTreeView->GetSelectedItems();
		if (SelectedItems.Num() > 0)
		{
			KeyTreeView->SetSelection(SelectedItems[0]);
		}
	}
}
コード例 #28
0
void ReSyntaxTreeBuilder::AlterNum(unsigned int& _Num)
{
	if (tokenizer.IsPosDigital())
	{
		Num(_Num);
	}
	else
	{
		_Num = ReSyntaxExprNode::FINITE;
		return;
	}
}
コード例 #29
0
int32 UInterpTrackAkAudioEvent::AddKeyframe(float Time, UInterpTrackInst* TrInst, EInterpCurveMode InitInterpMode)
{
	FAkAudioEventTrackKey NewAkEvent;
	NewAkEvent.AkAudioEvent = NULL;
	NewAkEvent.Time = Time;

	// Find the correct index to insert this cut.
	int32 i=0; for( i=0; i<Events.Num() && Events[i].Time < Time; i++);
	Events.Insert(NewAkEvent, i);
	
	return i;
}
コード例 #30
0
FAkAudioEventTrackKey& UInterpTrackAkAudioEvent::GetAkEventTrackKeyAtPosition(float InPosition)
{
	int32 EventIndex;

	for (EventIndex = -1; EventIndex<Events.Num()-1 && Events[EventIndex+1].Time < InPosition; EventIndex++);
	if (EventIndex == -1)
	{
		EventIndex = 0;
	}

	return Events[EventIndex];
}