(svn r1353) -Fix: [1092707] placing rocks in scenario editor. You can place rocks on trees and vice versa
authordarkvater
Mon, 03 Jan 2005 21:26:09 +0000
changeset 872 bfea30a005d5
parent 871 63d7f79199ec
child 873 46e892485be3
(svn r1353) -Fix: [1092707] placing rocks in scenario editor. You can place rocks on trees and vice versa
main_gui.c
tree_cmd.c
--- a/main_gui.c	Mon Jan 03 21:05:03 2005 +0000
+++ b/main_gui.c	Mon Jan 03 21:26:09 2005 +0000
@@ -1202,11 +1202,10 @@
 
 static void PlaceProc_RockyArea(uint tile)
 {
-	if (!IS_TILETYPE(tile, MP_CLEAR))
+	if (!IS_TILETYPE(tile, MP_CLEAR) && !IS_TILETYPE(tile, MP_TREES))
 		return;
 
-	_map5[tile] = (_map5[tile] & ~0x1C) | 0xB;
-	MarkTileDirtyByTile(tile);
+	ModifyTile(tile, MP_SETTYPE(MP_CLEAR) | MP_MAP5, (_map5[tile] & ~0x1C) | 0xB);
 	SndPlayTileFx(SND_1F_SPLAT, tile);
 }
 
--- a/tree_cmd.c	Mon Jan 03 21:05:03 2005 +0000
+++ b/tree_cmd.c	Mon Jan 03 21:26:09 2005 +0000
@@ -181,14 +181,14 @@
 				// 2x as expensive to add more trees to an existing tile
 				cost += _price.build_trees * 2;
 			} else {
-				// don't allow building on rocks
-				if (ti.type != MP_CLEAR || _map_owner[ti.tile] != OWNER_NONE || (ti.map5 & 0x1C) == 8) {
+				if (ti.type != MP_CLEAR || _map_owner[ti.tile] != OWNER_NONE) {
 					_error_message = STR_2804_SITE_UNSUITABLE;
 					continue;
 				}
 
 				// it's expensive to clear farmland
 				if ((ti.map5 & 0x1F) == 0xF) cost += _price.clear_3;
+				else if ((ti.map5 & 0x1C) == 8) cost += _price.clear_2;
 
 				if (flags & DC_EXEC) {
 					int m2;