I wanna know if this is fixed. I am brain f@(ked by UDataTable. For now, I am using blueprints as Implementable. It shows same read access violation. Here’s my latest code with Enum and Strings corrected and checked properly:
FMovementParameter UULib::CalculateSpeed(UDataTable* movementTable, EStances stance,
EFootplacements footCondition, EWeaponary weaponCondition, EMood mood)
{
FMovementParameter result = FMovementParameter::FMovementParameter();
// Stance:
FMovementParameter* stanceParameter = movementTable->FindRow<FMovementParameter>(UEnum::GetValueAsName(stance), "", true);
FName stanceParameterName = UEnum::GetValueAsName(stance);
stanceParameter = movementTable->FindRow<FMovementParameter>(stanceParameterName, "", true);
// Foot:
FMovementParameter* footParameter = movementTable->FindRow<FMovementParameter>(UEnum::GetValueAsName(footCondition), "", true);
FName footParameterName = UEnum::GetValueAsName(footCondition);
footParameter = movementTable->FindRow<FMovementParameter>(FName(footParameterName), "", true);
// WeaponParameter:
FMovementParameter* weaponParameter = movementTable->FindRow<FMovementParameter>(UEnum::GetValueAsName(weaponCondition), "", true);
FName weaponParameterName = UEnum::GetValueAsName(weaponCondition);
weaponParameter = movementTable->FindRow<FMovementParameter>(FName(weaponParameterName), "", true);
// Mood
FMovementParameter* moodParameter = movementTable->FindRow<FMovementParameter>(UEnum::GetValueAsName(mood), "", true);
FName moodParameterName = UEnum::GetValueAsName(mood);
moodParameter = movementTable->FindRow<FMovementParameter>(FName(moodParameterName), "", true);
UULib::PrintMessaged(FString::SanitizeFloat(stanceParameter->uSpeed), 10.0f);
UULib::PrintMessaged(FString::SanitizeFloat(footParameter->uSpeed), 10.0f);
UULib::PrintMessaged(FString::SanitizeFloat(weaponParameter->uSpeed), 10.0f);
UULib::PrintMessaged(FString::SanitizeFloat(moodParameter->uSpeed), 10.0f);
result.uSpeed = stanceParameter->uSpeed * footParameter->uSpeed * weaponParameter->uSpeed * moodParameter->uSpeed;
result.uHeight = stanceParameter->uHeight;
result.uStaminaLoss = stanceParameter->uStaminaLoss * weaponParameter->uStaminaLoss * moodParameter->uStaminaLoss ;
result.uCameraFOV = stanceParameter->uCameraFOV * footParameter->uCameraFOV * weaponParameter->uCameraFOV * moodParameter->uCameraFOV;
result.uCameraShake = stanceParameter->uCameraShake * footParameter->uCameraShake * weaponParameter->uCameraShake;
return result;
}
Edit:
I don’t understand WTF read access violation comes to do. I tried Administrator permissions on. Still same. Unreal Engine crashes with read access violation.