From 230b611b698830e5396dcc28d9c3dbe56cef199d Mon Sep 17 00:00:00 2001 From: Askou Date: Mon, 14 Jun 2021 10:01:56 +0200 Subject: [PATCH] Add another flat map type --- sources/Map/Map.cpp | 21 +++++++++++++++------ sources/Runner/Runner.cpp | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index 8b5d8206..90de3fec 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -303,10 +303,10 @@ namespace BBM { double rnd = static_cast(std::rand()) / RAND_MAX; - if (rnd > 0.95) + if (rnd > 0.98) return HOLE; if (rnd > 0.25) - return BREAKABLE; + return NOTHING; return NOTHING; } @@ -376,10 +376,19 @@ namespace BBM MapGenerator::MapBlock MapGenerator::createLongClassicUnbreakable(MapBlock map, int width, int height) { - for (int i = 0; i < width + 1; i++) - for (int j = 0; j < height + 1; j++) - if ((i % 3) && !((j + 1) % 2)) + int placedSpace = 0; + + for (int i = 1; i < width; i++) { + placedSpace = 0; + for (int j = 1; j < height; j++) { + if (!(j % 2)) + continue; + if (i < (width / 2 - width / 10) || i > (width / 2 + width / 10)) map[std::make_tuple(i, 0, j)] = UNBREAKABLE; + else + placedSpace++; + } + } return (map); } @@ -399,7 +408,7 @@ namespace BBM if (map[std::make_tuple(i, 0, j)] == SPAWNER) continue; if (isCloseToBlockType(map, i, 0, j, SPAWNER)) { - map[std::make_tuple(i, 0, j)] = NOTHING; + map[std::make_tuple(i, isNotClassic ? -1 : 0, j)] = isNotClassic ? BUMPER : NOTHING; } else { map[std::make_tuple(i, 0, j)] = getRandomBlockType(); } diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index 613b6a58..687fcc1d 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -551,7 +551,7 @@ namespace BBM scene->addEntity("camera") .addComponent(8, 25, 7) .addComponent(Vector3f(8, 0, 8)); - MapGenerator::loadMap(16, 16, MapGenerator::createMap(16, 16), scene); + MapGenerator::loadMap(16, 16, MapGenerator::createMap(16, 16, false, true), scene); return scene; }