Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.50 KB | None | 0 0
  1. int32 UMob_BFHelper_AutoTiling::CalculateTileBitValue(TArray<FStruct_DungeonGenTileData> TileMap, FStruct_XY Location, UMob_DA_MapGenData* Data)
  2. {
  3.     uint8 North = 0;
  4.     uint8 South = 0;
  5.     uint8 East = 0;
  6.     uint8 West = 0;
  7.     uint8 NorthEast = 0;
  8.     uint8 NorthWest = 0;
  9.     uint8 SouthEast = 0;
  10.     uint8 SouthWest = 0;
  11.  
  12.     if (CheckAdjectTile(TileMap, EEnum_Direction::North, Location, Data))
  13.     {
  14.         North = 1;
  15.     }
  16.     if (CheckAdjectTile(TileMap, EEnum_Direction::South, Location, Data))
  17.     {
  18.         South = 1;
  19.     }
  20.     if (CheckAdjectTile(TileMap, EEnum_Direction::East, Location, Data))
  21.     {
  22.         East = 1;
  23.     }
  24.     if (CheckAdjectTile(TileMap, EEnum_Direction::West, Location, Data))
  25.     {
  26.         West = 1;
  27.     }
  28.     if (CheckAdjectTile(TileMap, EEnum_Direction::NorthEast, Location, Data) && North == 1 && East == 1)
  29.     {
  30.         NorthEast = 1;
  31.     }
  32.     if (CheckAdjectTile(TileMap, EEnum_Direction::NorthWest, Location, Data) && West == 1 && North == 1)
  33.     {
  34.         NorthWest = 1;
  35.     }
  36.  
  37.     if (CheckAdjectTile(TileMap, EEnum_Direction::SouthEast, Location, Data) && South == 1 && East == 1)
  38.     {
  39.         SouthEast = 1;
  40.     }
  41.     if (CheckAdjectTile(TileMap, EEnum_Direction::SouthWest, Location, Data) && South == 1 && West == 1)
  42.     {
  43.         SouthWest = 1;
  44.     }
  45.  
  46.     uint8 index = NorthWest + (2 * North) + (4 * NorthEast) + (8 * West) + (16 * East) + (32 * SouthWest) + (64 * South) + (128 * SouthEast);
  47.     //uint8 index = NorthWest + 2 * North + 4 * NorthEast + 8 * West + 16 * East + 32 * SouthWest + 64 * South + 128 * SouthEast;
  48.     int32 result = static_cast<UINT32>(index);
  49.    
  50.  
  51.     // remap this section too a json you can just pull the data from
  52.     result == 2 ? result = 1 : false;
  53.     result == 8 ? result = 2 : false;
  54.     result == 10 ? result = 3 : false;
  55.     result == 11 ? result = 4 : false;
  56.     result == 16 ? result = 5 : false;
  57.     result == 18 ? result = 6 : false;
  58.     result == 22 ? result = 7 : false;
  59.     result == 24 ? result = 8 : false;
  60.     result == 26 ? result = 9 : false;
  61.     result == 27 ? result = 10 : false;
  62.     result == 30  ? result = 11 : false;
  63.     result == 31 ? result = 12 : false;
  64.     result == 64 ? result = 13 : false;
  65.     result == 66 ? result = 14 : false;
  66.     result == 72 ? result = 15 : false;
  67.     result == 74 ? result = 16 : false;
  68.     result == 75 ? result = 17 : false;
  69.     result == 80 ? result = 18 : false;
  70.     result == 82 ? result = 19 : false;
  71.     result == 86 ? result = 20 : false;
  72.     result == 88 ? result = 21 : false;
  73.     result == 90 ? result = 22 : false;
  74.     result == 91 ? result = 23 : false;
  75.     result == 94 ? result = 24 : false;
  76.     result == 95 ? result = 25 : false;
  77.     result == 104 ? result = 26 : false;
  78.     result == 106 ? result = 27 : false;
  79.     result == 107 ? result = 28 : false;
  80.     result == 120 ? result = 29 : false;
  81.     result == 122 ? result = 30 : false;
  82.     result == 123 ? result = 31 : false;
  83.     result == 126 ? result = 32 : false;
  84.     result == 127 ? result = 33 : false;
  85.     result == 208 ? result = 34 : false;
  86.     result == 210 ? result = 35 : false;
  87.     result == 214 ? result = 36 : false;
  88.     result == 216 ? result = 37 : false;
  89.     result == 218 ? result = 38 : false;
  90.     result == 219 ? result = 39 : false;
  91.     result == 222 ? result = 40 : false;
  92.     result == 223 ? result = 41 : false;
  93.     result == 248 ? result = 42 : false;
  94.     result == 250 ? result = 43 : false;
  95.     result == 251 ? result = 44 : false;
  96.     result == 254 ? result = 45 : false;
  97.     result == 255 ? result = 46 : false;
  98.     result == 0 ? result = 47 : false;
  99.  
  100.     if (result != 0)
  101.     {
  102.         UE_LOG(LogTemp, Warning, TEXT("North: %d West: %d East: %d South: %d BitMask Value: %d Result: %d "), North, West, East, South, index, result);
  103.     }
  104.     return(result);
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement