Add replacement sprites for road waypoint buildings

Add action 5 sprite replacement support
This commit is contained in:
Jonathan G Rennison
2022-01-26 01:51:00 +00:00
parent b4fc0b4dc5
commit 7ff885fc96
10 changed files with 56 additions and 9 deletions

View File

@@ -188,9 +188,12 @@ static void LoadSpriteTables()
/* Tracerestrict sprites. */
LoadGrfFile("tracerestrict.grf", SPR_TRACERESTRICT_BASE, false);
/* Tracerestrict sprites. */
/* Misc GUI sprites. */
LoadGrfFile("misc_gui.grf", SPR_MISC_GUI_BASE, false);
/* Road waypoints sprites. */
LoadGrfFile("road_waypoints.grf", SPR_ROAD_WAYPOINTS_BASE, false);
/* Fill duplicate original signal graphics sprite block */
for (uint i = 0; i < DUP_ORIGINAL_SIGNALS_SPRITE_COUNT; i++) {
DupSprite(SPR_ORIGINAL_SIGNALS_BASE + i, SPR_DUP_ORIGINAL_SIGNALS_BASE + i);

View File

@@ -30,6 +30,7 @@ extern const GRFFeatureInfo _grf_feature_list[] = {
GRFFeatureInfo("action5_programmable_signals", 1),
GRFFeatureInfo("action5_no_entry_signals", 1),
GRFFeatureInfo("action5_misc_gui", 1),
GRFFeatureInfo("action5_road_waypoints", 1),
GRFFeatureInfo("action0_railtype_programmable_signals", 1),
GRFFeatureInfo("action0_railtype_no_entry_signals", 1),
GRFFeatureInfo("action0_railtype_restricted_signals", 1),
@@ -89,5 +90,6 @@ extern const Action5TypeRemapDefinition _grf_action5_remappable_types[] = {
Action5TypeRemapDefinition("programmable_signals", A5BLOCK_ALLOW_OFFSET, SPR_PROGSIGNAL_BASE, 1, 32, "Programmable pre-signal graphics"),
Action5TypeRemapDefinition("no_entry_signals", A5BLOCK_ALLOW_OFFSET, SPR_EXTRASIGNAL_BASE, 1, 16, "No-entry signal graphics"),
Action5TypeRemapDefinition("misc_gui", A5BLOCK_ALLOW_OFFSET, SPR_MISC_GUI_BASE, 1, 1, "Miscellaneous GUI graphics"),
Action5TypeRemapDefinition("road_waypoints", A5BLOCK_ALLOW_OFFSET, SPR_ROAD_WAYPOINTS_BASE, 1, 4, "Road waypoints"),
Action5TypeRemapDefinition(),
};

View File

@@ -344,12 +344,20 @@ static const SpriteID ROUTE_STEP_SPRITE_COUNT = 4;
static const SpriteID SPR_TRACERESTRICT_BASE = SPR_ROUTE_STEP_BASE + ROUTE_STEP_SPRITE_COUNT;
static const uint16 TRACERESTRICT_SPRITE_COUNT = 2;
/* Tracerestrict sprites */
/* Misc GUI sprites */
static const SpriteID SPR_MISC_GUI_BASE = SPR_TRACERESTRICT_BASE + TRACERESTRICT_SPRITE_COUNT;
static const uint16 MISC_GUI_SPRITE_COUNT = 1;
/* Road waypoints sprites */
static const SpriteID SPR_ROAD_WAYPOINTS_BASE = SPR_MISC_GUI_BASE + MISC_GUI_SPRITE_COUNT;
static const SpriteID SPR_ROAD_WAYPOINT_Y_W = SPR_ROAD_WAYPOINTS_BASE;
static const SpriteID SPR_ROAD_WAYPOINT_Y_E = SPR_ROAD_WAYPOINTS_BASE + 1;
static const SpriteID SPR_ROAD_WAYPOINT_X_W = SPR_ROAD_WAYPOINTS_BASE + 2;
static const SpriteID SPR_ROAD_WAYPOINT_X_E = SPR_ROAD_WAYPOINTS_BASE + 3;
static const uint16 ROAD_WAYPOINTS_SPRITE_COUNT = 4;
/* Duplicated signal sprites */
static const SpriteID SPR_DUP_ORIGINAL_SIGNALS_BASE = SPR_MISC_GUI_BASE + MISC_GUI_SPRITE_COUNT;
static const SpriteID SPR_DUP_ORIGINAL_SIGNALS_BASE = SPR_ROAD_WAYPOINTS_BASE + ROAD_WAYPOINTS_SPRITE_COUNT;
static const uint16 DUP_ORIGINAL_SIGNALS_SPRITE_COUNT = 16;
static const SpriteID SPR_DUP_SIGNALS_BASE = SPR_DUP_ORIGINAL_SIGNALS_BASE + DUP_ORIGINAL_SIGNALS_SPRITE_COUNT;
static const uint16 DUP_SIGNALS_SPRITE_COUNT = PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT;

View File

@@ -763,6 +763,20 @@ static const DrawTileSeqStruct _station_display_datas_0171[] = {
TILE_SEQ_END()
};
/* drive-through bus stop X */
static const DrawTileSeqStruct _station_display_datas_road_waypoint_X[] = {
TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_ROAD_WAYPOINT_X_W | (1U << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_ROAD_WAYPOINT_X_E | (1U << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_END()
};
/* drive-through bus stop Y */
static const DrawTileSeqStruct _station_display_datas_road_waypoint_Y[] = {
TILE_SEQ_LINE(13, 0, 0, 3, 16, 16, SPR_ROAD_WAYPOINT_Y_W | (1U << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_LINE( 0, 0, 0, 3, 16, 16, SPR_ROAD_WAYPOINT_Y_E | (1U << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_END()
};
static const DrawTileSeqStruct _station_display_datas_waypoint_X[] = {
TILE_SEQ_LINE( 0, 0, 0, 16, 5, 23, SPR_WAYPOINT_X_1 | (1U << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_LINE( 0, 11, 0, 16, 5, 23, SPR_WAYPOINT_X_2 | (1U << PALETTE_MODIFIER_COLOUR))
@@ -956,12 +970,12 @@ static const DrawTileSprites _station_display_datas_bus[] = {
};
static const DrawTileSprites _station_display_datas_road_waypoint[] = {
TILE_SPRITE_LINE(SPR_BUS_STOP_NE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_71)
TILE_SPRITE_LINE(SPR_BUS_STOP_SE_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_72)
TILE_SPRITE_LINE(SPR_BUS_STOP_SW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_73)
TILE_SPRITE_LINE(SPR_BUS_STOP_NW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_74)
TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0170)
TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0171)
TILE_SPRITE_LINE(0, nullptr)
TILE_SPRITE_LINE(0, nullptr)
TILE_SPRITE_LINE(0, nullptr)
TILE_SPRITE_LINE(0, nullptr)
TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_road_waypoint_X)
TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_road_waypoint_Y)
};
static const DrawTileSprites _station_display_datas_oilrig[] = {