(svn r40) Final slope graphics fix
This commit is contained in:
		@@ -514,6 +514,11 @@ static void DrawTile_Clear(TileInfo *ti)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
uint GetSlopeZ_Clear(TileInfo *ti) { return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z; }
 | 
					uint GetSlopeZ_Clear(TileInfo *ti) { return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint GetSlopeTileh_Clear(TileInfo *ti)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return ti->tileh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void GetAcceptedCargo_Clear(uint tile, AcceptedCargo *ac)
 | 
					static void GetAcceptedCargo_Clear(uint tile, AcceptedCargo *ac)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* unused */	
 | 
						/* unused */	
 | 
				
			||||||
@@ -803,4 +808,5 @@ const TileTypeProcs _tile_type_clear_procs = {
 | 
				
			|||||||
	NULL,											/* get_produced_cargo_proc */
 | 
						NULL,											/* get_produced_cargo_proc */
 | 
				
			||||||
	NULL,											/* vehicle_enter_tile_proc */
 | 
						NULL,											/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,											/* vehicle_leave_tile_proc */
 | 
						NULL,											/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Clear,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,10 @@ static uint GetSlopeZ_Dummy(TileInfo *ti) {
 | 
				
			|||||||
	return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
						return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint GetSlopeZ_Dummy(TileInfo *ti) {
 | 
				
			||||||
 | 
						return ti->tileh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int32 ClearTile_Dummy(uint tile, byte flags) {
 | 
					static int32 ClearTile_Dummy(uint tile, byte flags) {
 | 
				
			||||||
	return_cmd_error(STR_0001_OFF_EDGE_OF_MAP);
 | 
						return_cmd_error(STR_0001_OFF_EDGE_OF_MAP);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -68,5 +72,6 @@ const TileTypeProcs _tile_type_dummy_procs = {
 | 
				
			|||||||
	NULL,											/* get_produced_cargo_proc */
 | 
						NULL,											/* get_produced_cargo_proc */
 | 
				
			||||||
	NULL,											/* vehicle_enter_tile_proc */
 | 
						NULL,											/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,											/* vehicle_leave_tile_proc */
 | 
						NULL,											/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Dummy,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -334,6 +334,10 @@ static uint GetSlopeZ_Industry(TileInfo *ti) {
 | 
				
			|||||||
	return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
						return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint GetSlopeTileh_Industry(TileInfo *ti) {
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void GetAcceptedCargo_Industry(uint tile, AcceptedCargo *ac)
 | 
					static void GetAcceptedCargo_Industry(uint tile, AcceptedCargo *ac)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int m5 = _map5[tile];
 | 
						int m5 = _map5[tile];
 | 
				
			||||||
@@ -1819,6 +1823,7 @@ const TileTypeProcs _tile_type_industry_procs = {
 | 
				
			|||||||
	GetProducedCargo_Industry,  /* get_produced_cargo_proc */
 | 
						GetProducedCargo_Industry,  /* get_produced_cargo_proc */
 | 
				
			||||||
	NULL,												/* vehicle_enter_tile_proc */
 | 
						NULL,												/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,												/* vehicle_leave_tile_proc */
 | 
						NULL,												/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Industry,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const byte _industry_desc[] = {
 | 
					static const byte _industry_desc[] = {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								landscape.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								landscape.c
									
									
									
									
									
								
							@@ -237,22 +237,34 @@ uint GetSlopeZ(int x,  int y)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	assert(z < 256);
 | 
						assert(z < 256);
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return _tile_type_procs[ti.type]->get_slope_z_proc(&ti);
 | 
						return _tile_type_procs[ti.type]->get_slope_z_proc(&ti);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* TODO: add check if this tile has a foundation or not. Since this can't be done easily with the
 | 
					// direction=true:  check for foundation in east and south corner
 | 
				
			||||||
	current landscape arrays, we might have to add a new TileTypeProc. */ 
 | 
					// direction=false: check for foundation in west and south corner
 | 
				
			||||||
bool hasFoundation(uint tile)
 | 
					bool hasFoundation(TileInfo *ti, bool direction)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return true;
 | 
						bool south, other; // southern corner and east/west corner
 | 
				
			||||||
 | 
						uint slope = _tile_type_procs[ti->type]->get_slope_tileh_proc(ti);
 | 
				
			||||||
 | 
						south = ((ti->tileh) & 2) != (slope & 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if(direction)
 | 
				
			||||||
 | 
							other = ((ti->tileh) & 4) != (slope & 4);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							other = ((ti->tileh) & 1) != (slope & 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return south || other;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DrawFoundation(TileInfo *ti, uint f)
 | 
					void DrawFoundation(TileInfo *ti, uint f)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	uint32 sprite_base = SPR_SLOPES_BASE-14;
 | 
						uint32 sprite_base = SPR_SLOPES_BASE-14;
 | 
				
			||||||
	if(hasFoundation( TILE_FROM_XY(ti->x, ti->y-1) )) sprite_base += 22;		// foundation in NW direction
 | 
					
 | 
				
			||||||
	if(hasFoundation( TILE_FROM_XY(ti->x-1, ti->y) )) sprite_base += 22*2;	// foundation in NE direction
 | 
						TileInfo ti2;
 | 
				
			||||||
 | 
						FindLandscapeHeight(&ti2, ti->x, ti->y-1);
 | 
				
			||||||
 | 
						if(hasFoundation( &ti2, true )) sprite_base += 22;		// foundation in NW direction
 | 
				
			||||||
 | 
						FindLandscapeHeight(&ti2, ti->x-1, ti->y);
 | 
				
			||||||
 | 
						if(hasFoundation( &ti2, false )) sprite_base += 22*2;	// foundation in NE direction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (f < 15) {
 | 
						if (f < 15) {
 | 
				
			||||||
		// leveled foundation	
 | 
							// leveled foundation	
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										23
									
								
								rail_cmd.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								rail_cmd.c
									
									
									
									
									
								
							@@ -1694,6 +1694,28 @@ uint GetSlopeZ_Track(TileInfo *ti)
 | 
				
			|||||||
	return z;
 | 
						return z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint GetSlopeTileh_Track(TileInfo *ti) 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						// check if it's a foundation
 | 
				
			||||||
 | 
						if (ti->tileh != 0) {
 | 
				
			||||||
 | 
							if ((ti->map5 & 0x80) == 0) {
 | 
				
			||||||
 | 
								uint f = GetRailFoundation(ti->tileh, ti->map5 & 0x3F);
 | 
				
			||||||
 | 
								if (f != 0) {
 | 
				
			||||||
 | 
									if (f < 15) {
 | 
				
			||||||
 | 
										// leveled foundation
 | 
				
			||||||
 | 
										return 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									// inclined foundation
 | 
				
			||||||
 | 
									return _inclined_tileh[f - 15];
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							} else if ((ti->map5 & 0xC0) == 0xC0) {
 | 
				
			||||||
 | 
								// depot or checkpoint
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return ti->tileh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void GetAcceptedCargo_Track(uint tile, AcceptedCargo *ac)
 | 
					static void GetAcceptedCargo_Track(uint tile, AcceptedCargo *ac)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* not used */
 | 
						/* not used */
 | 
				
			||||||
@@ -1949,4 +1971,5 @@ const TileTypeProcs _tile_type_rail_procs = {
 | 
				
			|||||||
	NULL,											/* get_produced_cargo_proc */
 | 
						NULL,											/* get_produced_cargo_proc */
 | 
				
			||||||
	VehicleEnter_Track,				/* vehicle_enter_tile_proc */
 | 
						VehicleEnter_Track,				/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,											/* vehicle_leave_tile_proc */
 | 
						NULL,											/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Track,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								road_cmd.c
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								road_cmd.c
									
									
									
									
									
								
							@@ -875,7 +875,29 @@ uint GetSlopeZ_Road(TileInfo *ti)
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		return GetPartialZ(ti->x&0xF, ti->y&0xF, th) + z;
 | 
							return GetPartialZ(ti->x&0xF, ti->y&0xF, th) + z;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return z;
 | 
						return z; // normal Z if no slope
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint GetSlopeTileh_Road(TileInfo *ti)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						// check if it's a foundation
 | 
				
			||||||
 | 
						if (ti->tileh != 0) {
 | 
				
			||||||
 | 
							if ((ti->map5 & 0xE0) == 0) { /* road or crossing */
 | 
				
			||||||
 | 
								uint f = GetRoadFoundation(ti->tileh, ti->map5 & 0x3F);
 | 
				
			||||||
 | 
								if (f != 0) {
 | 
				
			||||||
 | 
									if (f < 15) {
 | 
				
			||||||
 | 
										// leveled foundation
 | 
				
			||||||
 | 
										return 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									// inclined foundation
 | 
				
			||||||
 | 
									return _inclined_tileh[f - 15];
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							} else if ((ti->map5 & 0xF0) == 0x20) {
 | 
				
			||||||
 | 
								// depot
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return ti->tileh;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void GetAcceptedCargo_Road(uint tile, AcceptedCargo *ac)
 | 
					static void GetAcceptedCargo_Road(uint tile, AcceptedCargo *ac)
 | 
				
			||||||
@@ -1129,4 +1151,5 @@ const TileTypeProcs _tile_type_road_procs = {
 | 
				
			|||||||
	NULL,											/* get_produced_cargo_proc */
 | 
						NULL,											/* get_produced_cargo_proc */
 | 
				
			||||||
	VehicleEnter_Road,				/* vehicle_enter_tile_proc */
 | 
						VehicleEnter_Road,				/* vehicle_enter_tile_proc */
 | 
				
			||||||
	VehicleLeave_Road,				/* vehicle_leave_tile_proc */
 | 
						VehicleLeave_Road,				/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Road,				/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1778,6 +1778,11 @@ static uint GetSlopeZ_Station(TileInfo *ti)
 | 
				
			|||||||
	return z;
 | 
						return z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint GetSlopeTileh_Station(TileInfo *ti)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void GetAcceptedCargo_Station(uint tile, AcceptedCargo *ac)
 | 
					static void GetAcceptedCargo_Station(uint tile, AcceptedCargo *ac)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* not used */
 | 
						/* not used */
 | 
				
			||||||
@@ -2451,6 +2456,7 @@ const TileTypeProcs _tile_type_station_procs = {
 | 
				
			|||||||
	NULL,												/* get_produced_cargo_proc */
 | 
						NULL,												/* get_produced_cargo_proc */
 | 
				
			||||||
	VehicleEnter_Station,				/* vehicle_enter_tile_proc */
 | 
						VehicleEnter_Station,				/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,												/* vehicle_leave_tile_proc */
 | 
						NULL,												/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Station,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -103,6 +103,11 @@ static uint GetSlopeZ_Town(TileInfo *ti)
 | 
				
			|||||||
	return (uint16) z;	
 | 
						return (uint16) z;	
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint GetSlopeTileh_Town(TileInfo *ti)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return ti->tileh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void AnimateTile_Town(uint tile)
 | 
					static void AnimateTile_Town(uint tile)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int old;
 | 
						int old;
 | 
				
			||||||
@@ -1772,6 +1777,7 @@ const TileTypeProcs _tile_type_town_procs = {
 | 
				
			|||||||
	NULL,											/* get_produced_cargo_proc */
 | 
						NULL,											/* get_produced_cargo_proc */
 | 
				
			||||||
	NULL,											/* vehicle_enter_tile_proc */
 | 
						NULL,											/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,											/* vehicle_leave_tile_proc */
 | 
						NULL,											/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Town,				/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -332,6 +332,10 @@ static uint GetSlopeZ_Trees(TileInfo *ti) {
 | 
				
			|||||||
	return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
						return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint GetSlopeTileh_Trees(TileInfo *ti) {
 | 
				
			||||||
 | 
						return ti->tileh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int32 ClearTile_Trees(uint tile, byte flags) {
 | 
					static int32 ClearTile_Trees(uint tile, byte flags) {
 | 
				
			||||||
	int num;
 | 
						int num;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -644,4 +648,5 @@ const TileTypeProcs _tile_type_trees_procs = {
 | 
				
			|||||||
	NULL,											/* get_produced_cargo_proc */
 | 
						NULL,											/* get_produced_cargo_proc */
 | 
				
			||||||
	NULL,											/* vehicle_enter_tile_proc */
 | 
						NULL,											/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,											/* vehicle_leave_tile_proc */
 | 
						NULL,											/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Trees,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								ttd.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ttd.h
									
									
									
									
									
								
							@@ -242,6 +242,7 @@ typedef void ChangeTileOwnerProc(uint tile, byte old_player, byte new_player);
 | 
				
			|||||||
 * other bits that can be set? */
 | 
					 * other bits that can be set? */
 | 
				
			||||||
typedef uint32 VehicleEnterTileProc(Vehicle *v, uint tile, int x, int y);
 | 
					typedef uint32 VehicleEnterTileProc(Vehicle *v, uint tile, int x, int y);
 | 
				
			||||||
typedef void VehicleLeaveTileProc(Vehicle *v, uint tile, int x, int y);
 | 
					typedef void VehicleLeaveTileProc(Vehicle *v, uint tile, int x, int y);
 | 
				
			||||||
 | 
					typedef uint GetSlopeTilehProc(TileInfo *ti);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
	DrawTileProc *draw_tile_proc;
 | 
						DrawTileProc *draw_tile_proc;
 | 
				
			||||||
@@ -257,6 +258,7 @@ typedef struct {
 | 
				
			|||||||
	GetProducedCargoProc *get_produced_cargo_proc;
 | 
						GetProducedCargoProc *get_produced_cargo_proc;
 | 
				
			||||||
	VehicleEnterTileProc *vehicle_enter_tile_proc;
 | 
						VehicleEnterTileProc *vehicle_enter_tile_proc;
 | 
				
			||||||
	VehicleLeaveTileProc *vehicle_leave_tile_proc;
 | 
						VehicleLeaveTileProc *vehicle_leave_tile_proc;
 | 
				
			||||||
 | 
						GetSlopeTilehProc *get_slope_tileh_proc;
 | 
				
			||||||
} TileTypeProcs;
 | 
					} TileTypeProcs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1198,6 +1198,12 @@ static uint GetSlopeZ_TunnelBridge(TileInfo *ti) {
 | 
				
			|||||||
	return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + z;
 | 
						return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint GetSlopeTileh_TunnelBridge(TileInfo *ti) {
 | 
				
			||||||
 | 
						// not accurate, but good enough for slope graphics drawing
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void GetAcceptedCargo_TunnelBridge(uint tile, AcceptedCargo *ac)
 | 
					static void GetAcceptedCargo_TunnelBridge(uint tile, AcceptedCargo *ac)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* not used */
 | 
						/* not used */
 | 
				
			||||||
@@ -1478,4 +1484,5 @@ const TileTypeProcs _tile_type_tunnelbridge_procs = {
 | 
				
			|||||||
	NULL,														/* get_produced_cargo_proc */
 | 
						NULL,														/* get_produced_cargo_proc */
 | 
				
			||||||
	VehicleEnter_TunnelBridge,			/* vehicle_enter_tile_proc */
 | 
						VehicleEnter_TunnelBridge,			/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,														/* vehicle_leave_tile_proc */
 | 
						NULL,														/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_TunnelBridge,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -106,6 +106,11 @@ static uint GetSlopeZ_Unmovable(TileInfo *ti)
 | 
				
			|||||||
	return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
						return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint GetSlopeTileh_Unmovable(TileInfo *ti) 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int32 ClearTile_Unmovable(uint tile, byte flags)
 | 
					static int32 ClearTile_Unmovable(uint tile, byte flags)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	byte m5 = _map5[tile];
 | 
						byte m5 = _map5[tile];
 | 
				
			||||||
@@ -386,4 +391,5 @@ const TileTypeProcs _tile_type_unmovable_procs = {
 | 
				
			|||||||
	NULL,													/* get_produced_cargo_proc */
 | 
						NULL,													/* get_produced_cargo_proc */
 | 
				
			||||||
	NULL,													/* vehicle_enter_tile_proc */
 | 
						NULL,													/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,													/* vehicle_leave_tile_proc */
 | 
						NULL,													/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Unmovable,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -441,6 +441,11 @@ uint GetSlopeZ_Water(TileInfo *ti)
 | 
				
			|||||||
	return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
						return GetPartialZ(ti->x&0xF, ti->y&0xF, ti->tileh) + ti->z;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint GetSlopeTileh_Water(TileInfo *ti)
 | 
				
			||||||
 | 
					{ 
 | 
				
			||||||
 | 
						return ti->tileh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void GetAcceptedCargo_Water(uint tile, AcceptedCargo *ac)
 | 
					static void GetAcceptedCargo_Water(uint tile, AcceptedCargo *ac)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* not used */
 | 
						/* not used */
 | 
				
			||||||
@@ -608,5 +613,6 @@ const TileTypeProcs _tile_type_water_procs = {
 | 
				
			|||||||
	NULL,											/* get_produced_cargo_proc */
 | 
						NULL,											/* get_produced_cargo_proc */
 | 
				
			||||||
	VehicleEnter_Water,				/* vehicle_enter_tile_proc */
 | 
						VehicleEnter_Water,				/* vehicle_enter_tile_proc */
 | 
				
			||||||
	NULL,											/* vehicle_leave_tile_proc */
 | 
						NULL,											/* vehicle_leave_tile_proc */
 | 
				
			||||||
 | 
						GetSlopeTileh_Water,			/* get_slope_tileh_proc */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user