/* * This file is part of OpenTTD. * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ /** @file genland.h Table used to generate deserts and/or rain forests. */ #define M(x, y) {x, y} // This default array draws a filled circle 13 tiles in diameter static const TileIndexDiffC _make_desert_or_rainforest_data[] = { M(-5, -5), M(-4, -5), M(-3, -5), M(-2, -5), M(-1, -5), M( 0, -5), M( 1, -5), M( 2, -5), M( 3, -5), M( 4, -5), M( 5, -5), M(-5, -4), M(-4, -4), M(-3, -4), M(-2, -4), M(-1, -4), M( 0, -4), M( 1, -4), M( 2, -4), M( 3, -4), M( 4, -4), M( 5, -4), M(-5, -3), M(-4, -3), M(-3, -3), M(-2, -3), M(-1, -3), M( 0, -3), M( 1, -3), M( 2, -3), M( 3, -3), M( 4, -3), M( 5, -3), M(-5, -2), M(-4, -2), M(-3, -2), M(-2, -2), M(-1, -2), M( 0, -2), M( 1, -2), M( 2, -2), M( 3, -2), M( 4, -2), M( 5, -2), M(-5, -1), M(-4, -1), M(-3, -1), M(-2, -1), M(-1, -1), M( 0, -1), M( 1, -1), M( 2, -1), M( 3, -1), M( 4, -1), M( 5, -1), M(-5, 0), M(-4, 0), M(-3, 0), M(-2, 0), M(-1, 0), M( 0, 0), M( 1, 0), M( 2, 0), M( 3, 0), M( 4, 0), M( 5, 0), M(-5, 1), M(-4, 1), M(-3, 1), M(-2, 1), M(-1, 1), M( 0, 1), M( 1, 1), M( 2, 1), M( 3, 1), M( 4, 1), M( 5, 1), M(-5, 2), M(-4, 2), M(-3, 2), M(-2, 2), M(-1, 2), M( 0, 2), M( 1, 2), M( 2, 2), M( 3, 2), M( 4, 2), M( 5, 2), M(-5, 3), M(-4, 3), M(-3, 3), M(-2, 3), M(-1, 3), M( 0, 3), M( 1, 3), M( 2, 3), M( 3, 3), M( 4, 3), M( 5, 3), M(-5, 4), M(-4, 4), M(-3, 4), M(-2, 4), M(-1, 4), M( 0, 4), M( 1, 4), M( 2, 4), M( 3, 4), M( 4, 4), M( 5, 4), M(-5, 5), M(-4, 5), M(-3, 5), M(-2, 5), M(-1, 5), M( 0, 5), M( 1, 5), M( 2, 5), M( 3, 5), M( 4, 5), M( 5, 5), M( 6, -3), M(-6, -3), M(-3, 6), M(-3, -6), M( 6, -2), M(-6, -2), M(-2, 6), M(-2, -6), M( 6, -1), M(-6, -1), M(-1, 6), M(-1, -6), M( 6, 0), M(-6, 0), M( 0, 6), M( 0, -6), M( 6, 1), M(-6, 1), M( 1, 6), M( 1, -6), M( 6, 2), M(-6, 2), M( 2, 6), M( 2, -6), M( 6, 3), M(-6, 3), M( 3, 6), M( 3, -6) }; // This array draws a filled circle 19 tiles in diameter static const TileIndexDiffC _make_desert_or_rainforest_data_medium[] = { M(-3, -9), M(-2, -9), M(-1, -9), M(0, -9), M(1, -9), M(2, -9), M(3, -9), M(-5, -8), M(-4, -8), M(-3, -8), M(-2, -8), M(-1, -8), M(0, -8), M(1, -8), M(2, -8), M(3, -8), M(4, -8), M(5, -8), M(-6, -7), M(-5, -7), M(-4, -7), M(-3, -7), M(-2, -7), M(-1, -7), M(0, -7), M(1, -7), M(2, -7), M(3, -7), M(4, -7), M(5, -7), M(6, -7), M(-7, -6), M(-6, -6), M(-5, -6), M(-4, -6), M(-3, -6), M(-2, -6), M(-1, -6), M(0, -6), M(1, -6), M(2, -6), M(3, -6), M(4, -6), M(5, -6), M(6, -6), M(7, -6), M(-8, -5), M(-7, -5), M(-6, -5), M(-5, -5), M(-4, -5), M(-3, -5), M(-2, -5), M(-1, -5), M(0, -5), M(1, -5), M(2, -5), M(3, -5), M(4, -5), M(5, -5), M(6, -5), M(7, -5), M(8, -5), M(-8, -4), M(-7, -4), M(-6, -4), M(-5, -4), M(-4, -4), M(-3, -4), M(-2, -4), M(-1, -4), M(0, -4), M(1, -4), M(2, -4), M(3, -4), M(4, -4), M(5, -4), M(6, -4), M(7, -4), M(8, -4), M(-9, -3), M(-8, -3), M(-7, -3), M(-6, -3), M(-5, -3), M(-4, -3), M(-3, -3), M(-2, -3), M(-1, -3), M(0, -3), M(1, -3), M(2, -3), M(3, -3), M(4, -3), M(5, -3), M(6, -3), M(7, -3), M(8, -3), M(9, -3), M(-9, -2), M(-8, -2), M(-7, -2), M(-6, -2), M(-5, -2), M(-4, -2), M(-3, -2), M(-2, -2), M(-1, -2), M(0, -2), M(1, -2), M(2, -2), M(3, -2), M(4, -2), M(5, -2), M(6, -2), M(7, -2), M(8, -2), M(9, -2), M(-9, -1), M(-8, -1), M(-7, -1), M(-6, -1), M(-5, -1), M(-4, -1), M(-3, -1), M(-2, -1), M(-1, -1), M(0, -1), M(1, -1), M(2, -1), M(3, -1), M(4, -1), M(5, -1), M(6, -1), M(7, -1), M(8, -1), M(9, -1), M(-9, 0), M(-8, 0), M(-7, 0), M(-6, 0), M(-5, 0), M(-4, 0), M(-3, 0), M(-2, 0), M(-1, 0), M(0, 0), M(1, 0), M(2, 0), M(3, 0), M(4, 0), M(5, 0), M(6, 0), M(7, 0), M(8, 0), M(9, 0), M(-9, 1), M(-8, 1), M(-7, 1), M(-6, 1), M(-5, 1), M(-4, 1), M(-3, 1), M(-2, 1), M(-1, 1), M(0, 1), M(1, 1), M(2, 1), M(3, 1), M(4, 1), M(5, 1), M(6, 1), M(7, 1), M(8, 1), M(9, 1), M(-9, 2), M(-8, 2), M(-7, 2), M(-6, 2), M(-5, 2), M(-4, 2), M(-3, 2), M(-2, 2), M(-1, 2), M(0, 2), M(1, 2), M(2, 2), M(3, 2), M(4, 2), M(5, 2), M(6, 2), M(7, 2), M(8, 2), M(9, 2), M(-9, 3), M(-8, 3), M(-7, 3), M(-6, 3), M(-5, 3), M(-4, 3), M(-3, 3), M(-2, 3), M(-1, 3), M(0, 3), M(1, 3), M(2, 3), M(3, 3), M(4, 3), M(5, 3), M(6, 3), M(7, 3), M(8, 3), M(9, 3), M(-8, 4), M(-7, 4), M(-6, 4), M(-5, 4), M(-4, 4), M(-3, 4), M(-2, 4), M(-1, 4), M(0, 4), M(1, 4), M(2, 4), M(3, 4), M(4, 4), M(5, 4), M(6, 4), M(7, 4), M(8, 4), M(-8, 5), M(-7, 5), M(-6, 5), M(-5, 5), M(-4, 5), M(-3, 5), M(-2, 5), M(-1, 5), M(0, 5), M(1, 5), M(2, 5), M(3, 5), M(4, 5), M(5, 5), M(6, 5), M(7, 5), M(8, 5), M(-7, 6), M(-6, 6), M(-5, 6), M(-4, 6), M(-3, 6), M(-2, 6), M(-1, 6), M(0, 6), M(1, 6), M(2, 6), M(3, 6), M(4, 6), M(5, 6), M(6, 6), M(7, 6), M(-6, 7), M(-5, 7), M(-4, 7), M(-3, 7), M(-2, 7), M(-1, 7), M(0, 7), M(1, 7), M(2, 7), M(3, 7), M(4, 7), M(5, 7), M(6, 7), M(-5, 8), M(-4, 8), M(-3, 8), M(-2, 8), M(-1, 8), M(0, 8), M(1, 8), M(2, 8), M(3, 8), M(4, 8), M(5, 8), M(-3, 9), M(-2, 9), M(-1, 9), M(0, 9), M(1, 9), M(2, 9), M(3, 9) }; // This array draws a filled circle 25 tiles in diameter static const TileIndexDiffC _make_desert_or_rainforest_data_large[] = { M(-3, -12), M(-2, -12), M(-1, -12), M(0, -12), M(1, -12), M(2, -12), M(3, -12), M(-5, -11), M(-4, -11), M(-3, -11), M(-2, -11), M(-1, -11), M(0, -11), M(1, -11), M(2, -11), M(3, -11), M(4, -11), M(5, -11), M(-7, -10), M(-6, -10), M(-5, -10), M(-4, -10), M(-3, -10), M(-2, -10), M(-1, -10), M(0, -10), M(1, -10), M(2, -10), M(3, -10), M(4, -10), M(5, -10), M(6, -10), M(7, -10), M(-8, -9), M(-7, -9), M(-6, -9), M(-5, -9), M(-4, -9), M(-3, -9), M(-2, -9), M(-1, -9), M(0, -9), M(1, -9), M(2, -9), M(3, -9), M(4, -9), M(5, -9), M(6, -9), M(7, -9), M(8, -9), M(-9, -8), M(-8, -8), M(-7, -8), M(-6, -8), M(-5, -8), M(-4, -8), M(-3, -8), M(-2, -8), M(-1, -8), M(0, -8), M(1, -8), M(2, -8), M(3, -8), M(4, -8), M(5, -8), M(6, -8), M(7, -8), M(8, -8), M(9, -8), M(-10, -7), M(-9, -7), M(-8, -7), M(-7, -7), M(-6, -7), M(-5, -7), M(-4, -7), M(-3, -7), M(-2, -7), M(-1, -7), M(0, -7), M(1, -7), M(2, -7), M(3, -7), M(4, -7), M(5, -7), M(6, -7), M(7, -7), M(8, -7), M(9, -7), M(10, -7), M(-10, -6), M(-9, -6), M(-8, -6), M(-7, -6), M(-6, -6), M(-5, -6), M(-4, -6), M(-3, -6), M(-2, -6), M(-1, -6), M(0, -6), M(1, -6), M(2, -6), M(3, -6), M(4, -6), M(5, -6), M(6, -6), M(7, -6), M(8, -6), M(9, -6), M(10, -6), M(-11, -5), M(-10, -5), M(-9, -5), M(-8, -5), M(-7, -5), M(-6, -5), M(-5, -5), M(-4, -5), M(-3, -5), M(-2, -5), M(-1, -5), M(0, -5), M(1, -5), M(2, -5), M(3, -5), M(4, -5), M(5, -5), M(6, -5), M(7, -5), M(8, -5), M(9, -5), M(10, -5), M(11, -5), M(-11, -4), M(-10, -4), M(-9, -4), M(-8, -4), M(-7, -4), M(-6, -4), M(-5, -4), M(-4, -4), M(-3, -4), M(-2, -4), M(-1, -4), M(0, -4), M(1, -4), M(2, -4), M(3, -4), M(4, -4), M(5, -4), M(6, -4), M(7, -4), M(8, -4), M(9, -4), M(10, -4), M(11, -4), M(-12, -3), M(-11, -3), M(-10, -3), M(-9, -3), M(-8, -3), M(-7, -3), M(-6, -3), M(-5, -3), M(-4, -3), M(-3, -3), M(-2, -3), M(-1, -3), M(0, -3), M(1, -3), M(2, -3), M(3, -3), M(4, -3), M(5, -3), M(6, -3), M(7, -3), M(8, -3), M(9, -3), M(10, -3), M(11, -3), M(12, -3), M(-12, -2), M(-11, -2), M(-10, -2), M(-9, -2), M(-8, -2), M(-7, -2), M(-6, -2), M(-5, -2), M(-4, -2), M(-3, -2), M(-2, -2), M(-1, -2), M(0, -2), M(1, -2), M(2, -2), M(3, -2), M(4, -2), M(5, -2), M(6, -2), M(7, -2), M(8, -2), M(9, -2), M(10, -2), M(11, -2), M(12, -2), M(-12, -1), M(-11, -1), M(-10, -1), M(-9, -1), M(-8, -1), M(-7, -1), M(-6, -1), M(-5, -1), M(-4, -1), M(-3, -1), M(-2, -1), M(-1, -1), M(0, -1), M(1, -1), M(2, -1), M(3, -1), M(4, -1), M(5, -1), M(6, -1), M(7, -1), M(8, -1), M(9, -1), M(10, -1), M(11, -1), M(12, -1), M(-12, 0), M(-11, 0), M(-10, 0), M(-9, 0), M(-8, 0), M(-7, 0), M(-6, 0), M(-5, 0), M(-4, 0), M(-3, 0), M(-2, 0), M(-1, 0), M(0, 0), M(1, 0), M(2, 0), M(3, 0), M(4, 0), M(5, 0), M(6, 0), M(7, 0), M(8, 0), M(9, 0), M(10, 0), M(11, 0), M(12, 0), M(-12, 1), M(-11, 1), M(-10, 1), M(-9, 1), M(-8, 1), M(-7, 1), M(-6, 1), M(-5, 1), M(-4, 1), M(-3, 1), M(-2, 1), M(-1, 1), M(0, 1), M(1, 1), M(2, 1), M(3, 1), M(4, 1), M(5, 1), M(6, 1), M(7, 1), M(8, 1), M(9, 1), M(10, 1), M(11, 1), M(12, 1), M(-12, 2), M(-11, 2), M(-10, 2), M(-9, 2), M(-8, 2), M(-7, 2), M(-6, 2), M(-5, 2), M(-4, 2), M(-3, 2), M(-2, 2), M(-1, 2), M(0, 2), M(1, 2), M(2, 2), M(3, 2), M(4, 2), M(5, 2), M(6, 2), M(7, 2), M(8, 2), M(9, 2), M(10, 2), M(11, 2), M(12, 2), M(-12, 3), M(-11, 3), M(-10, 3), M(-9, 3), M(-8, 3), M(-7, 3), M(-6, 3), M(-5, 3), M(-4, 3), M(-3, 3), M(-2, 3), M(-1, 3), M(0, 3), M(1, 3), M(2, 3), M(3, 3), M(4, 3), M(5, 3), M(6, 3), M(7, 3), M(8, 3), M(9, 3), M(10, 3), M(11, 3), M(12, 3), M(-11, 4), M(-10, 4), M(-9, 4), M(-8, 4), M(-7, 4), M(-6, 4), M(-5, 4), M(-4, 4), M(-3, 4), M(-2, 4), M(-1, 4), M(0, 4), M(1, 4), M(2, 4), M(3, 4), M(4, 4), M(5, 4), M(6, 4), M(7, 4), M(8, 4), M(9, 4), M(10, 4), M(11, 4), M(-11, 5), M(-10, 5), M(-9, 5), M(-8, 5), M(-7, 5), M(-6, 5), M(-5, 5), M(-4, 5), M(-3, 5), M(-2, 5), M(-1, 5), M(0, 5), M(1, 5), M(2, 5), M(3, 5), M(4, 5), M(5, 5), M(6, 5), M(7, 5), M(8, 5), M(9, 5), M(10, 5), M(11, 5), M(-10, 6), M(-9, 6), M(-8, 6), M(-7, 6), M(-6, 6), M(-5, 6), M(-4, 6), M(-3, 6), M(-2, 6), M(-1, 6), M(0, 6), M(1, 6), M(2, 6), M(3, 6), M(4, 6), M(5, 6), M(6, 6), M(7, 6), M(8, 6), M(9, 6), M(10, 6), M(-10, 7), M(-9, 7), M(-8, 7), M(-7, 7), M(-6, 7), M(-5, 7), M(-4, 7), M(-3, 7), M(-2, 7), M(-1, 7), M(0, 7), M(1, 7), M(2, 7), M(3, 7), M(4, 7), M(5, 7), M(6, 7), M(7, 7), M(8, 7), M(9, 7), M(10, 7), M(-9, 8), M(-8, 8), M(-7, 8), M(-6, 8), M(-5, 8), M(-4, 8), M(-3, 8), M(-2, 8), M(-1, 8), M(0, 8), M(1, 8), M(2, 8), M(3, 8), M(4, 8), M(5, 8), M(6, 8), M(7, 8), M(8, 8), M(9, 8), M(-8, 9), M(-7, 9), M(-6, 9), M(-5, 9), M(-4, 9), M(-3, 9), M(-2, 9), M(-1, 9), M(0, 9), M(1, 9), M(2, 9), M(3, 9), M(4, 9), M(5, 9), M(6, 9), M(7, 9), M(8, 9), M(-7, 10), M(-6, 10), M(-5, 10), M(-4, 10), M(-3, 10), M(-2, 10), M(-1, 10), M(0, 10), M(1, 10), M(2, 10), M(3, 10), M(4, 10), M(5, 10), M(6, 10), M(7, 10), M(-5, 11), M(-4, 11), M(-3, 11), M(-2, 11), M(-1, 11), M(0, 11), M(1, 11), M(2, 11), M(3, 11), M(4, 11), M(5, 11), M(-3, 12), M(-2, 12), M(-1, 12), M(0, 12), M(1, 12), M(2, 12), M(3, 12), }; #undef M