tree_cmd.c
changeset 2051 e369160ce2f3
parent 2049 538e73c53f54
child 2085 876f20a0e843
equal deleted inserted replaced
2050:3b37e813823a 2051:e369160ce2f3
    94 
    94 
    95 static void PlaceMoreTrees(void)
    95 static void PlaceMoreTrees(void)
    96 {
    96 {
    97 	int i = ScaleByMapSize((Random() & 0x1F) + 25);
    97 	int i = ScaleByMapSize((Random() & 0x1F) + 25);
    98 	do {
    98 	do {
    99 		DoPlaceMoreTrees(TILE_MASK(Random()));
    99 		DoPlaceMoreTrees(RandomTile());
   100 	} while (--i);
   100 	} while (--i);
   101 }
   101 }
   102 
   102 
   103 void PlaceTreesRandomly(void)
   103 void PlaceTreesRandomly(void)
   104 {
   104 {
   107 	TileIndex tile;
   107 	TileIndex tile;
   108 
   108 
   109 	i = ScaleByMapSize(1000);
   109 	i = ScaleByMapSize(1000);
   110 	do {
   110 	do {
   111 		r = Random();
   111 		r = Random();
   112 		tile = TILE_MASK(r);
   112 		tile = RandomTileSeed(r);
   113 		/* Only on clear tiles, and NOT on farm-tiles or rocks */
   113 		/* Only on clear tiles, and NOT on farm-tiles or rocks */
   114 		if (IsTileType(tile, MP_CLEAR) && (_m[tile].m5 & 0x1F) != 0x0F && (_m[tile].m5 & 0x1C) != 8) {
   114 		if (IsTileType(tile, MP_CLEAR) && (_m[tile].m5 & 0x1F) != 0x0F && (_m[tile].m5 & 0x1C) != 8) {
   115 			PlaceTree(tile, r, 0);
   115 			PlaceTree(tile, r, 0);
   116 		}
   116 		}
   117 	} while (--i);
   117 	} while (--i);
   120 	if (_opt.landscape == LT_DESERT) {
   120 	if (_opt.landscape == LT_DESERT) {
   121 		i = ScaleByMapSize(15000);
   121 		i = ScaleByMapSize(15000);
   122 
   122 
   123 		do {
   123 		do {
   124 			r = Random();
   124 			r = Random();
   125 			tile = TILE_MASK(r);
   125 			tile = RandomTileSeed(r);
   126 			if (IsTileType(tile, MP_CLEAR) && GetMapExtraBits(tile) == 2) {
   126 			if (IsTileType(tile, MP_CLEAR) && GetMapExtraBits(tile) == 2) {
   127 				PlaceTree(tile, r, 0);
   127 				PlaceTree(tile, r, 0);
   128 			}
   128 			}
   129 		} while (--i);
   129 		} while (--i);
   130 	}
   130 	}
   600 	byte m;
   600 	byte m;
   601 	int tree;
   601 	int tree;
   602 
   602 
   603 	/* place a tree at a random rainforest spot */
   603 	/* place a tree at a random rainforest spot */
   604 	if (_opt.landscape == LT_DESERT &&
   604 	if (_opt.landscape == LT_DESERT &&
   605 			(r=Random(),tile=TILE_MASK(r),GetMapExtraBits(tile)==2) &&
   605 			(r=Random(),tile=RandomTileSeed(r),GetMapExtraBits(tile)==2) &&
   606 			IsTileType(tile, MP_CLEAR) &&
   606 			IsTileType(tile, MP_CLEAR) &&
   607 			(m=_m[tile].m5&0x1C, m<=4) &&
   607 			(m=_m[tile].m5&0x1C, m<=4) &&
   608 			(tree=GetRandomTreeType(tile, r>>24)) >= 0) {
   608 			(tree=GetRandomTreeType(tile, r>>24)) >= 0) {
   609 
   609 
   610 		ModifyTile(tile,
   610 		ModifyTile(tile,