aboutsummaryrefslogtreecommitdiff
path: root/src/mapgen/mapgen_carpathian.cpp
Commit message (Expand)AuthorAge
* Avoid generating the same chunk more than once with multiple emerge threads.Lars2020-11-26
* Add 'ores' global mapgen flag (#10276)Paramat2020-09-03
* Give the Mapgen on each EmergeThread its own Biome/Ore/Deco/SchemManager copysfan52020-05-05
* Drop content_sao.{cpp,h}Loic Blot2020-04-11
* Settings: Add get_flags API for mapgen flags (mg_flags, mgv6_spflags, ...) (#...SmallJoker2020-01-25
* Dungeons: Move duplicated y limit checks to generation functionparamat2019-11-23
* Randomwalk cave liquids: Remove deprecated 'lava depth' parameter (#9105)Paramat2019-11-18
* Randomwalk caves: Add parameters for number, proportion flooded. Allow small ...Paramat2019-11-08
* Mapgen Carpathian: Add optional rivers (#7977)Paramat2019-06-19
* Dungeons: Settable density noise, move number calculation to mapgens (#8473)Paramat2019-06-01
* mapgen: drop mapgen id from child mapgens.Loïc Blot2019-03-31
* Change mapgen order to ores > dungeons > decorations (#7656)Paramat2018-08-20
* Mapgen flags: Add 'biomes' global mapgen flag (#7355)Paramat2018-06-08
* Mapgen caves: Re-order generation to fix cavern bugParamat2018-04-29
* Biome API / dungeons: Add biome-defined dungeon nodesParamat2018-04-07
* Mgcarpathian: Fix spawn level calculation (#7212)Paramat2018-04-06
* Mgcarpathian: Remove insignificant 'base' noise variation (#7209)Paramat2018-04-05
* Fix various clang-tidy reported performance-type-promotion-in-math-fnLoïc Blot2018-04-03
* Fix many issues reported by clang-tidy (#7189)Loïc Blot2018-04-02
* Mgcarpathian: Mapgen loop optimisations. fabs() -> std::fabs()Paramat2018-03-29
* Dungeons: Add Y limits in all mapgensparamat2018-02-20
* Mapgen folder: Update and improve copyright information of filesparamat2018-01-15
* Move files to subdirectories (#6599)Vitaliy2017-11-08
\ } catch (std::exception &e) { \ rawstream << "Caught unhandled exception: " << e.what() << std::endl; \ rawstream << "[FAIL] "; \ num_tests_failed++; \ } \ num_tests_run++; \ u64 tdiff = porting::getTimeMs() - t1; \ rawstream << #fxn << " - " << tdiff << "ms" << std::endl; \ } // Asserts the specified condition is true, or fails the current unit test #define UASSERT(x) \ if (!(x)) { \ rawstream << "Test assertion failed: " #x << std::endl \ << " at " << fs::GetFilenameFromPath(__FILE__) \ << ":" << __LINE__ << std::endl; \ throw TestFailedException(); \ } // Asserts the specified condition is true, or fails the current unit test // and prints the format specifier fmt #define UTEST(x, fmt, ...) \ if (!(x)) { \ char utest_buf[1024]; \ snprintf(utest_buf, sizeof(utest_buf), fmt, __VA_ARGS__); \ rawstream << "Test assertion failed: " << utest_buf << std::endl \ << " at " << fs::GetFilenameFromPath(__FILE__) \ << ":" << __LINE__ << std::endl; \ throw TestFailedException(); \ } // Asserts the comparison specified by CMP is true, or fails the current unit test #define UASSERTCMP(T, CMP, actual, expected) { \ T a = (actual); \ T e = (expected); \ if (!(a CMP e)) { \ rawstream \ << "Test assertion failed: " << #actual << " " << #CMP << " " \ << #expected << std::endl \ << " at " << fs::GetFilenameFromPath(__FILE__) << ":" \ << __LINE__ << std::endl \ << " actual : " << a << std::endl << " expected: " \ << e << std::endl; \ throw TestFailedException(); \ } \ } #define UASSERTEQ(T, actual, expected) UASSERTCMP(T, ==, actual, expected) // UASSERTs that the specified exception occurs #define EXCEPTION_CHECK(EType, code) { \ bool exception_thrown = false; \ try { \ code; \ } catch (EType &e) { \ exception_thrown = true; \ } \ UASSERT(exception_thrown); \ } class IGameDef; class TestBase { public: bool testModule(IGameDef *gamedef); std::string getTestTempDirectory(); std::string getTestTempFile(); virtual void runTests(IGameDef *gamedef) = 0; virtual const char *getName() = 0; u32 num_tests_failed; u32 num_tests_run; private: std::string m_test_dir; }; class TestManager { public: static std::vector<TestBase *> &getTestModules() { static std::vector<TestBase *> m_modules_to_test; return m_modules_to_test; } static void registerTestModule(TestBase *module) { getTestModules().push_back(module); } }; // A few item and node definitions for those tests that need them extern content_t t_CONTENT_STONE; extern content_t t_CONTENT_GRASS; extern content_t t_CONTENT_TORCH; extern content_t t_CONTENT_WATER; extern content_t t_CONTENT_LAVA; extern content_t t_CONTENT_BRICK; bool run_tests();