Changeset - r7659:8e01cc9c2a94
[Not reviewed]
master
0 5 0
rubidium - 17 years ago 2007-09-30 19:33:40
rubidium@openttd.org
(svn r11190) -Fix: make snowy roofs of (newgrf) houses also transparent.
5 files changed with 11 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/newgrf_house.cpp
Show inline comments
 
@@ -337,25 +337,25 @@ void DrawTileLayout(const TileInfo *ti, 
 
			pal = PAL_NONE;
 
		}
 

	
 
		if ((byte)dtss->delta_z != 0x80) {
 
			AddSortableSpriteToDraw(
 
				image, pal,
 
				ti->x + dtss->delta_x, ti->y + dtss->delta_y,
 
				dtss->size_x, dtss->size_y,
 
				dtss->size_z, ti->z + dtss->delta_z,
 
				HASBIT(_transparent_opt, TO_HOUSES)
 
			);
 
		} else {
 
			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y);
 
			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y, HASBIT(_transparent_opt, TO_HOUSES));
 
		}
 
	}
 
}
 

	
 
void DrawNewHouseTile(TileInfo *ti, HouseID house_id)
 
{
 
	const HouseSpec *hs = GetHouseSpecs(house_id);
 
	const SpriteGroup *group;
 
	ResolverObject object;
 

	
 
	if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED);
 

	
src/newgrf_industrytiles.cpp
Show inline comments
 
@@ -187,25 +187,25 @@ void IndustryDrawTileLayout(const TileIn
 
			pal = PAL_NONE;
 
		}
 

	
 
		if ((byte)dtss->delta_z != 0x80) {
 
			AddSortableSpriteToDraw(
 
				image, pal,
 
				ti->x + dtss->delta_x, ti->y + dtss->delta_y,
 
				dtss->size_x, dtss->size_y,
 
				dtss->size_z, ti->z + dtss->delta_z,
 
				!HASBIT(image, SPRITE_MODIFIER_OPAQUE) && HASBIT(_transparent_opt, TO_INDUSTRIES)
 
			);
 
		} else {
 
			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y);
 
			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y, HASBIT(_transparent_opt, TO_INDUSTRIES));
 
		}
 
	}
 
}
 

	
 
uint16 GetIndustryTileCallback(CallbackID callback, uint32 param1, uint32 param2, IndustryGfx gfx_id, Industry *industry, TileIndex tile)
 
{
 
	ResolverObject object;
 
	const SpriteGroup *group;
 

	
 
	NewIndustryTileResolver(&object, gfx_id, tile, industry);
 
	object.callback = callback;
 
	object.callback_param1 = param1;
src/station_cmd.cpp
Show inline comments
 
@@ -2106,25 +2106,25 @@ static void DrawTile_Station(TileInfo *t
 
			pal = dtss->pal;
 
		}
 

	
 
		if ((byte)dtss->delta_z != 0x80) {
 
			AddSortableSpriteToDraw(
 
				image, pal,
 
				ti->x + dtss->delta_x, ti->y + dtss->delta_y,
 
				dtss->size_x, dtss->size_y,
 
				dtss->size_z, ti->z + dtss->delta_z,
 
				HASBIT(_transparent_opt, TO_BUILDINGS)
 
			);
 
		} else {
 
			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y);
 
			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y, HASBIT(_transparent_opt, TO_BUILDINGS));
 
		}
 
	}
 
}
 

	
 
void StationPickerDrawSprite(int x, int y, StationType st, RailType railtype, RoadType roadtype, int image)
 
{
 
	const RailtypeInfo *rti = GetRailTypeInfo(railtype);
 
	SpriteID pal = PLAYER_SPRITE_COLOR(_local_player);
 
	const DrawTileSprites *t = &_station_display_datas[st][image];
 

	
 
	SpriteID img = t->ground_sprite;
 
	DrawSprite(img + rti->total_offset, HASBIT(img, PALETTE_MODIFIER_COLOR) ? pal : PAL_NONE, x, y);
src/viewport.cpp
Show inline comments
 
@@ -604,31 +604,37 @@ void AddSortableSpriteToDraw(SpriteID im
 
}
 

	
 
void StartSpriteCombine()
 
{
 
	_cur_vd->combine_sprites = 1;
 
}
 

	
 
void EndSpriteCombine()
 
{
 
	_cur_vd->combine_sprites = 0;
 
}
 

	
 
void AddChildSpriteScreen(SpriteID image, SpriteID pal, int x, int y)
 
void AddChildSpriteScreen(SpriteID image, SpriteID pal, int x, int y, bool transparent)
 
{
 
	ViewportDrawer *vd = _cur_vd;
 
	ChildScreenSpriteToDraw *cs;
 

	
 
	assert((image & SPRITE_MASK) < MAX_SPRITES);
 

	
 
	/* make the sprites transparent with the right palette */
 
	if (transparent) {
 
		SETBIT(image, PALETTE_MODIFIER_TRANSPARENT);
 
		pal = PALETTE_TO_TRANSPARENT;
 
	}
 

	
 
	if (vd->spritelist_mem >= vd->eof_spritelist_mem) {
 
		DEBUG(sprite, 0, "Out of sprite memory");
 
		return;
 
	}
 
	cs = (ChildScreenSpriteToDraw*)vd->spritelist_mem;
 

	
 
	/* If the ParentSprite was clipped by the viewport bounds, do not draw the ChildSprites either */
 
	if (vd->last_child == NULL) return;
 

	
 
	vd->spritelist_mem += sizeof(ChildScreenSpriteToDraw);
 

	
 
	*vd->last_child = cs;
src/viewport.h
Show inline comments
 
@@ -52,25 +52,25 @@ static inline void MaxZoomInOut(int how,
 
 */
 
enum {
 
	BB_HEIGHT_UNDER_BRIDGE = 6, ///< Everything that can be built under low bridges, must not exceed this Z height.
 
	BB_Z_SEPARATOR  = 7,        ///< Separates the bridge/tunnel from the things under/above it.
 
};
 

	
 
void OffsetGroundSprite(int x, int y);
 

	
 
void DrawGroundSprite(SpriteID image, SpriteID pal);
 
void DrawGroundSpriteAt(SpriteID image, SpriteID pal, int32 x, int32 y, byte z);
 
void AddSortableSpriteToDraw(SpriteID image, SpriteID pal, int x, int y, int w, int h, int dz, int z, bool transparent = false, int bb_offset_x = 0, int bb_offset_y = 0, int bb_offset_z = 0);
 
void *AddStringToDraw(int x, int y, StringID string, uint64 params_1, uint64 params_2);
 
void AddChildSpriteScreen(SpriteID image, SpriteID pal, int x, int y);
 
void AddChildSpriteScreen(SpriteID image, SpriteID pal, int x, int y, bool transparent = false);
 

	
 

	
 
void StartSpriteCombine();
 
void EndSpriteCombine();
 

	
 
void HandleViewportClicked(const ViewPort *vp, int x, int y);
 
void PlaceObject();
 
void SetRedErrorSquare(TileIndex tile);
 
void SetTileSelectSize(int w, int h);
 
void SetTileSelectBigSize(int ox, int oy, int sx, int sy);
 

	
 
void VpStartPlaceSizing(TileIndex tile, byte method, byte process);
0 comments (0 inline, 0 general)