Fixed freezes on controller calling MarkPath() to invalid locations
This commit is contained in:
+6
-15
@@ -26,60 +26,51 @@ AMovementArrow::AMovementArrow()
|
||||
}
|
||||
|
||||
void AMovementArrow::SetVariant(FHexVector InVector, FHexVector OutVector) {
|
||||
|
||||
int32 InVectorIndex = MapRef->UnitVectors.Find(InVector);
|
||||
int32 OutVectorIndex = MapRef->UnitVectors.Find(OutVector);
|
||||
int32 VariantIndex;
|
||||
|
||||
if (InVectorIndex == 0)
|
||||
{
|
||||
if (InVectorIndex == 0) {
|
||||
if (OutVectorIndex == 0) { VariantIndex = 0; }
|
||||
if (OutVectorIndex == 1) { VariantIndex = 1; }
|
||||
if (OutVectorIndex == 2) { VariantIndex = 2; }
|
||||
if (OutVectorIndex == 4) { VariantIndex = 3; }
|
||||
if (OutVectorIndex == 5) { VariantIndex = 4; }
|
||||
}
|
||||
if (InVectorIndex == 1)
|
||||
{
|
||||
if (InVectorIndex == 1) {
|
||||
if (OutVectorIndex == 0) { VariantIndex = 4; }
|
||||
if (OutVectorIndex == 1) { VariantIndex = 0; }
|
||||
if (OutVectorIndex == 2) { VariantIndex = 1; }
|
||||
if (OutVectorIndex == 3) { VariantIndex = 2; }
|
||||
if (OutVectorIndex == 5) { VariantIndex = 3; }
|
||||
}
|
||||
if (InVectorIndex == 2)
|
||||
{
|
||||
if (InVectorIndex == 2) {
|
||||
if (OutVectorIndex == 0) { VariantIndex = 3; }
|
||||
if (OutVectorIndex == 1) { VariantIndex = 4; }
|
||||
if (OutVectorIndex == 2) { VariantIndex = 0; }
|
||||
if (OutVectorIndex == 3) { VariantIndex = 1; }
|
||||
if (OutVectorIndex == 4) { VariantIndex = 2; }
|
||||
}
|
||||
if (InVectorIndex == 3)
|
||||
{
|
||||
if (InVectorIndex == 3) {
|
||||
if (OutVectorIndex == 1) { VariantIndex = 3; }
|
||||
if (OutVectorIndex == 2) { VariantIndex = 4; }
|
||||
if (OutVectorIndex == 3) { VariantIndex = 0; }
|
||||
if (OutVectorIndex == 4) { VariantIndex = 1; }
|
||||
if (OutVectorIndex == 5) { VariantIndex = 2; }
|
||||
}
|
||||
if (InVectorIndex == 4)
|
||||
{
|
||||
if (InVectorIndex == 4) {
|
||||
if (OutVectorIndex == 0) { VariantIndex = 2; }
|
||||
if (OutVectorIndex == 2) { VariantIndex = 3; }
|
||||
if (OutVectorIndex == 3) { VariantIndex = 4; }
|
||||
if (OutVectorIndex == 4) { VariantIndex = 0; }
|
||||
if (OutVectorIndex == 5) { VariantIndex = 1; }
|
||||
}
|
||||
if (InVectorIndex == 5)
|
||||
{
|
||||
if (InVectorIndex == 5) {
|
||||
if (OutVectorIndex == 0) { VariantIndex = 1; }
|
||||
if (OutVectorIndex == 1) { VariantIndex = 2; }
|
||||
if (OutVectorIndex == 3) { VariantIndex = 3; }
|
||||
if (OutVectorIndex == 4) { VariantIndex = 4; }
|
||||
if (OutVectorIndex == 5) { VariantIndex = 0; }
|
||||
}
|
||||
|
||||
SceneComponent->SetRelativeRotation(FRotator(0, InVectorIndex * 60.f, 0));
|
||||
MeshVariants[VariantIndex]->ToggleVisibility();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user