MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / DrawTileLayout

Function DrawTileLayout

src/newgrf_house.cpp:464–487  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

462}
463
464static void DrawTileLayout(const TileInfo *ti, const DrawTileSpriteSpan &dts, uint8_t stage, HouseID house_id)
465{
466 const HouseSpec *hs = HouseSpec::Get(house_id);
467 PaletteID palette = GetColourPalette(hs->random_colour[TileHash2Bit(ti->x, ti->y)]);
468 if (hs->callback_mask.Test(HouseCallbackMask::Colour)) {
469 uint16_t callback = GetHouseCallback(CBID_HOUSE_COLOUR, 0, 0, house_id, Town::GetByTile(ti->tile), ti->tile);
470 if (callback != CALLBACK_FAILED) {
471 /* If bit 14 is set, we should use a 2cc colour map, else use the callback value. */
472 palette = HasBit(callback, 14) ? GB(callback, 0, 8) + SPR_2CCMAP_BASE : callback;
473 }
474 }
475
476 SpriteID image = dts.ground.sprite;
477 PaletteID pal = dts.ground.pal;
478
479 if (HasBit(image, SPRITE_MODIFIER_CUSTOM_SPRITE)) image += stage;
480 if (HasBit(pal, SPRITE_MODIFIER_CUSTOM_SPRITE)) pal += stage;
481
482 if (GB(image, 0, SPRITE_WIDTH) != 0) {
483 DrawGroundSprite(image, GroundSpritePaletteTransform(image, pal, palette));
484 }
485
486 DrawNewGRFTileSeq(ti, &dts, TO_HOUSES, stage, palette);
487}
488
489void DrawNewHouseTile(TileInfo *ti, HouseID house_id)
490{

Callers 1

DrawNewHouseTileFunction · 0.70

Calls 9

GetColourPaletteFunction · 0.85
TileHash2BitFunction · 0.85
GetHouseCallbackFunction · 0.85
HasBitFunction · 0.85
GBFunction · 0.85
DrawGroundSpriteFunction · 0.85
DrawNewGRFTileSeqFunction · 0.85
TestMethod · 0.80

Tested by

no test coverage detected