From 9101d2e2d2d6c80506f089d6dae418a8c4b9257c Mon Sep 17 00:00:00 2001 From: michi_cc Date: Wed, 15 Feb 2012 21:23:48 +0000 Subject: [PATCH] (svn r23952) -Feature: [NewGRF] Customisable tunnel portals for rail types (sprites by Snail). --- bin/baseset/openttd.grf | Bin 831219 -> 852958 bytes bin/baseset/orig_dos.obg | 2 +- bin/baseset/orig_dos_de.obg | 2 +- bin/baseset/orig_win.obg | 2 +- media/extra_grf/openttd.nfo | 1 + media/extra_grf/tunnel_portals.nfo | 74 +++++++++++++++++++++++++++++ media/extra_grf/tunnel_portals.png | Bin 0 -> 18680 bytes src/newgrf.cpp | 1 + src/rail.h | 1 + src/table/sprites.h | 6 ++- src/tunnelbridge_cmd.cpp | 19 ++++++-- 11 files changed, 100 insertions(+), 8 deletions(-) create mode 100644 media/extra_grf/tunnel_portals.nfo create mode 100644 media/extra_grf/tunnel_portals.png diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf index 4fa97ccaca9784ce2141fe5f0534bbb4eaa345b2..9b5c9badb35361933a6626fce106de134bf36f11 100644 GIT binary patch delta 21968 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. +// + + -1 * 63 0C "Tunnel portal overlays for railtypes by Snail (Jacopo Coletto)" + +// Tropical sprites. + -1 * 6 07 83 01 \7! 02 11 + -1 * 3 05 17 10 + -1 sprites/tunnel_portals.png 5 88 01 33 35 -31 -2 + -1 sprites/tunnel_portals.png 43 88 01 37 40 -7 -38 + -1 sprites/tunnel_portals.png 86 88 01 21 35 -31 0 + -1 sprites/tunnel_portals.png 124 88 01 22 40 -7 -29 + -1 sprites/tunnel_portals.png 168 88 01 21 35 -2 0 + -1 sprites/tunnel_portals.png 206 88 01 22 40 -31 -29 + -1 sprites/tunnel_portals.png 249 88 01 33 35 -2 -2 + -1 sprites/tunnel_portals.png 287 88 01 37 40 -31 -38 + -1 sprites/tunnel_portals.png 5 170 01 33 35 -31 -2 + -1 sprites/tunnel_portals.png 43 170 01 37 40 -7 -38 + -1 sprites/tunnel_portals.png 86 170 01 21 35 -31 0 + -1 sprites/tunnel_portals.png 124 170 01 22 40 -7 -29 + -1 sprites/tunnel_portals.png 168 170 01 21 35 -2 0 + -1 sprites/tunnel_portals.png 206 170 01 22 40 -31 -29 + -1 sprites/tunnel_portals.png 249 170 01 33 35 -2 -2 + -1 sprites/tunnel_portals.png 287 170 01 37 40 -31 -38 + +// Temperate grass + snow sprites. + -1 * 6 07 83 01 \7= 02 25 + -1 * 3 05 17 10 + -1 sprites/tunnel_portals.png 5 6 01 33 35 -31 -2 + -1 sprites/tunnel_portals.png 43 6 01 37 40 -7 -38 + -1 sprites/tunnel_portals.png 86 6 01 21 35 -31 0 + -1 sprites/tunnel_portals.png 124 6 01 22 40 -7 -29 + -1 sprites/tunnel_portals.png 168 6 01 21 35 -2 0 + -1 sprites/tunnel_portals.png 206 6 01 22 40 -31 -29 + -1 sprites/tunnel_portals.png 249 6 01 33 35 -2 -2 + -1 sprites/tunnel_portals.png 287 6 01 37 40 -31 -38 + -1 sprites/tunnel_portals.png 5 129 01 33 35 -31 -2 + -1 sprites/tunnel_portals.png 43 129 01 37 40 -7 -38 + -1 sprites/tunnel_portals.png 86 129 01 21 35 -31 0 + -1 sprites/tunnel_portals.png 124 129 01 22 40 -7 -29 + -1 sprites/tunnel_portals.png 168 129 01 21 35 -2 0 + -1 sprites/tunnel_portals.png 206 129 01 22 40 -31 -29 + -1 sprites/tunnel_portals.png 249 129 01 33 35 -2 -2 + -1 sprites/tunnel_portals.png 287 129 01 37 40 -31 -38 + +// Arctic grass sprites. + -1 * 6 07 83 01 \7! 01 09 + -1 * 4 05 97 08 00 + -1 sprites/tunnel_portals.png 5 47 01 33 35 -31 -2 + -1 sprites/tunnel_portals.png 43 47 01 37 40 -7 -38 + -1 sprites/tunnel_portals.png 86 47 01 21 35 -31 0 + -1 sprites/tunnel_portals.png 124 47 01 22 40 -7 -29 + -1 sprites/tunnel_portals.png 168 47 01 21 35 -2 0 + -1 sprites/tunnel_portals.png 206 47 01 22 40 -31 -29 + -1 sprites/tunnel_portals.png 249 47 01 33 35 -2 -2 + -1 sprites/tunnel_portals.png 287 47 01 37 40 -31 -38 + +// Toyland sprites. + -1 * 6 07 83 01 \7! 03 09 + -1 * 4 05 97 08 00 + -1 sprites/tunnel_portals.png 5 211 01 33 35 -31 -2 + -1 sprites/tunnel_portals.png 43 211 01 37 40 -7 -38 + -1 sprites/tunnel_portals.png 86 211 01 21 35 -31 0 + -1 sprites/tunnel_portals.png 124 211 01 22 40 -7 -29 + -1 sprites/tunnel_portals.png 168 211 01 21 35 -2 0 + -1 sprites/tunnel_portals.png 206 211 01 22 40 -31 -29 + -1 sprites/tunnel_portals.png 249 211 01 33 35 -2 -2 + -1 sprites/tunnel_portals.png 287 211 01 37 40 -31 -38 diff --git a/media/extra_grf/tunnel_portals.png b/media/extra_grf/tunnel_portals.png new file mode 100644 index 0000000000000000000000000000000000000000..00abd9c7ffbcc5fb7805695f83e2841339aff376 GIT binary patch literal 18680 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%0DdvURT$?_T*jk=a($ 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 KelF{r5}E+~tile))->base_sprites.tunnel; + const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(ti->tile)); + image = rti->base_sprites.tunnel; + if (rti->UsesOverlay()) { + /* Check if the railtype has custom tunnel portals. */ + railtype_overlay = GetCustomRailSprite(rti, ti->tile, RTSG_TUNNEL_PORTAL); + if (railtype_overlay != 0) image = SPR_RAILTYPE_TUNNEL_BASE; // Draw blank grass tunnel base. + } } else { image = SPR_TUNNEL_ENTRY_REAR_ROAD; } - if (HasTunnelBridgeSnowOrDesert(ti->tile)) image += 32; + if (HasTunnelBridgeSnowOrDesert(ti->tile)) image += railtype_overlay != 0 ? 8 : 32; image += tunnelbridge_direction * 2; DrawGroundSprite(image, PAL_NONE); @@ -1164,9 +1171,13 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } } - AddSortableSpriteToDraw(image + 1, PAL_NONE, ti->x + TILE_SIZE - 1, ti->y + TILE_SIZE - 1, BB_data[0], BB_data[1], TILE_HEIGHT, ti->z, false, BB_data[2], BB_data[3], BB_Z_SEPARATOR); + if (railtype_overlay != 0 && !catenary) StartSpriteCombine(); - if (catenary) EndSpriteCombine(); + AddSortableSpriteToDraw(image + 1, PAL_NONE, ti->x + TILE_SIZE - 1, ti->y + TILE_SIZE - 1, BB_data[0], BB_data[1], TILE_HEIGHT, ti->z, false, BB_data[2], BB_data[3], BB_Z_SEPARATOR); + /* Draw railtype tunnel portal overlay if defined. */ + if (railtype_overlay != 0) AddSortableSpriteToDraw(railtype_overlay + tunnelbridge_direction, PAL_NONE, ti->x + TILE_SIZE - 1, ti->y + TILE_SIZE - 1, BB_data[0], BB_data[1], TILE_HEIGHT, ti->z, false, BB_data[2], BB_data[3], BB_Z_SEPARATOR); + + if (catenary || railtype_overlay != 0) EndSpriteCombine(); /* Add helper BB for sprite sorting that separates the tunnel from things beside of it. */ AddSortableSpriteToDraw(SPR_EMPTY_BOUNDING_BOX, PAL_NONE, ti->x, ti->y, BB_data[6], BB_data[7], TILE_HEIGHT, ti->z);