Changeset - r15942:04a4b4326c6c
[Not reviewed]
master
0 2 0
rubidium - 14 years ago 2010-08-27 22:29:13
rubidium@openttd.org
(svn r20640) -Add: support for water under objects
2 files changed with 7 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/object_cmd.cpp
Show inline comments
 
@@ -16,12 +16,13 @@
 
#include "company_base.h"
 
#include "town.h"
 
#include "bridge_map.h"
 
#include "genworld.h"
 
#include "autoslope.h"
 
#include "functions.h"
 
#include "water.h"
 
#include "window_func.h"
 
#include "company_gui.h"
 
#include "cheat_type.h"
 
#include "landscape_type.h"
 
#include "object.h"
 
#include "cargopacket.h"
 
@@ -313,13 +314,13 @@ static CommandCost ClearTile_Object(Tile
 

	
 
		default:
 
			break;
 
	}
 

	
 
	if (flags & DC_EXEC) {
 
		TILE_AREA_LOOP(tile_cur, ta) DoClearSquare(tile_cur);
 
		TILE_AREA_LOOP(tile_cur, ta) MakeWaterKeepingClass(tile_cur, GetTileOwner(tile_cur));
 
		delete o;
 
	}
 

	
 
	return cost;
 
}
 

	
 
@@ -353,12 +354,14 @@ static void GetTileDesc_Object(TileIndex
 
	td->owner[0] = GetTileOwner(tile);
 
	td->build_date = Object::GetByTile(tile)->build_date;
 
}
 

	
 
static void TileLoop_Object(TileIndex tile)
 
{
 
	if (IsTileOnWater(tile)) TileLoop_Water(tile);
 

	
 
	if (!IsCompanyHQ(tile)) return;
 

	
 
	/* HQ accepts passenger and mail; but we have to divide the values
 
	 * between 4 tiles it occupies! */
 

	
 
	/* HQ level (depends on company performance) in the range 1..5. */
src/water_cmd.cpp
Show inline comments
 
@@ -496,12 +496,14 @@ static bool IsWateredTile(TileIndex tile
 
			if ((IsTileType(src_tile, MP_STATION) && IsOilRig(src_tile)) ||
 
			    (IsTileType(src_tile, MP_INDUSTRY) && GetIndustryIndex(src_tile) == GetIndustryIndex(tile))) return true;
 

	
 
			return IsTileOnWater(tile);
 
		}
 

	
 
		case MP_OBJECT: return IsTileOnWater(tile);
 

	
 
		case MP_TUNNELBRIDGE: return GetTunnelBridgeTransportType(tile) == TRANSPORT_WATER && ReverseDiagDir(GetTunnelBridgeDirection(tile)) == DirToDiagDir(from);
 

	
 
		default:          return false;
 
	}
 
}
 

	
 
@@ -932,12 +934,13 @@ FloodingBehaviour GetFloodingBehaviour(T
 
				Slope tileh = GetTileSlope(tile, NULL);
 
				return (IsSlopeWithOneCornerRaised(tileh) ? FLOOD_ACTIVE : FLOOD_DRYUP);
 
			}
 
			/* FALL THROUGH */
 
		case MP_STATION:
 
		case MP_INDUSTRY:
 
		case MP_OBJECT:
 
			return (GetWaterClass(tile) == WATER_CLASS_SEA) ? FLOOD_ACTIVE : FLOOD_NONE;
 

	
 
		case MP_RAILWAY:
 
			if (GetRailGroundType(tile) == RAIL_GROUND_WATER) {
 
				return (IsSlopeWithOneCornerRaised(GetTileSlope(tile, NULL)) ? FLOOD_ACTIVE : FLOOD_DRYUP);
 
			}
0 comments (0 inline, 0 general)