Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int32 UMob_BFHelper_AutoTiling::CalculateTileBitValue(TArray<FStruct_DungeonGenTileData> TileMap, FStruct_XY Location, UMob_DA_MapGenData* Data)
- {
- uint8 North = 0;
- uint8 South = 0;
- uint8 East = 0;
- uint8 West = 0;
- uint8 NorthEast = 0;
- uint8 NorthWest = 0;
- uint8 SouthEast = 0;
- uint8 SouthWest = 0;
- if (CheckAdjectTile(TileMap, EEnum_Direction::North, Location, Data))
- {
- North = 1;
- }
- if (CheckAdjectTile(TileMap, EEnum_Direction::South, Location, Data))
- {
- South = 1;
- }
- if (CheckAdjectTile(TileMap, EEnum_Direction::East, Location, Data))
- {
- East = 1;
- }
- if (CheckAdjectTile(TileMap, EEnum_Direction::West, Location, Data))
- {
- West = 1;
- }
- if (CheckAdjectTile(TileMap, EEnum_Direction::NorthEast, Location, Data) && North == 1 && East == 1)
- {
- NorthEast = 1;
- }
- if (CheckAdjectTile(TileMap, EEnum_Direction::NorthWest, Location, Data) && West == 1 && North == 1)
- {
- NorthWest = 1;
- }
- if (CheckAdjectTile(TileMap, EEnum_Direction::SouthEast, Location, Data) && South == 1 && East == 1)
- {
- SouthEast = 1;
- }
- if (CheckAdjectTile(TileMap, EEnum_Direction::SouthWest, Location, Data) && South == 1 && West == 1)
- {
- SouthWest = 1;
- }
- uint8 index = NorthWest + (2 * North) + (4 * NorthEast) + (8 * West) + (16 * East) + (32 * SouthWest) + (64 * South) + (128 * SouthEast);
- //uint8 index = NorthWest + 2 * North + 4 * NorthEast + 8 * West + 16 * East + 32 * SouthWest + 64 * South + 128 * SouthEast;
- int32 result = static_cast<UINT32>(index);
- // remap this section too a json you can just pull the data from
- result == 2 ? result = 1 : false;
- result == 8 ? result = 2 : false;
- result == 10 ? result = 3 : false;
- result == 11 ? result = 4 : false;
- result == 16 ? result = 5 : false;
- result == 18 ? result = 6 : false;
- result == 22 ? result = 7 : false;
- result == 24 ? result = 8 : false;
- result == 26 ? result = 9 : false;
- result == 27 ? result = 10 : false;
- result == 30 ? result = 11 : false;
- result == 31 ? result = 12 : false;
- result == 64 ? result = 13 : false;
- result == 66 ? result = 14 : false;
- result == 72 ? result = 15 : false;
- result == 74 ? result = 16 : false;
- result == 75 ? result = 17 : false;
- result == 80 ? result = 18 : false;
- result == 82 ? result = 19 : false;
- result == 86 ? result = 20 : false;
- result == 88 ? result = 21 : false;
- result == 90 ? result = 22 : false;
- result == 91 ? result = 23 : false;
- result == 94 ? result = 24 : false;
- result == 95 ? result = 25 : false;
- result == 104 ? result = 26 : false;
- result == 106 ? result = 27 : false;
- result == 107 ? result = 28 : false;
- result == 120 ? result = 29 : false;
- result == 122 ? result = 30 : false;
- result == 123 ? result = 31 : false;
- result == 126 ? result = 32 : false;
- result == 127 ? result = 33 : false;
- result == 208 ? result = 34 : false;
- result == 210 ? result = 35 : false;
- result == 214 ? result = 36 : false;
- result == 216 ? result = 37 : false;
- result == 218 ? result = 38 : false;
- result == 219 ? result = 39 : false;
- result == 222 ? result = 40 : false;
- result == 223 ? result = 41 : false;
- result == 248 ? result = 42 : false;
- result == 250 ? result = 43 : false;
- result == 251 ? result = 44 : false;
- result == 254 ? result = 45 : false;
- result == 255 ? result = 46 : false;
- result == 0 ? result = 47 : false;
- if (result != 0)
- {
- UE_LOG(LogTemp, Warning, TEXT("North: %d West: %d East: %d South: %d BitMask Value: %d Result: %d "), North, West, East, South, index, result);
- }
- return(result);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement