Add replacement sprites for road waypoint buildings

Add action 5 sprite replacement support
pull/363/head
Jonathan G Rennison 2 years ago
parent b4fc0b4dc5
commit 7ff885fc96

@ -208,6 +208,12 @@
<p>There is currently one misc GUI sprite.</p>
</td>
</tr>
<tr><td>ROAD_WAYPOINTS</td><td>4</td>
<td>
<b>Road waypoint graphics</b>
<p>This is the same order and format as the drive-through bus/truck road stop sprites.</p>
</td>
</tr>
</table>
<h3>Signal graphics using switches</h3>
<p>

@ -552,5 +552,8 @@
<h4 id="misc_gui">Miscellaneous GUI graphics (mappable type: misc_gui)</h4>
<p>There is currently one misc GUI sprite.</p>
<p>This is indicated by the feature name: <font face="monospace">action5_misc_gui</font>, version 1</p>
<h4 id="road_waypoints">Road waypoint graphics (mappable type: road_waypoints)</h4>
<p>This is 4 sprites, in the same order and format as the drive-through bus or truck road stop graphics.</p>
<p>This is indicated by the feature name: <font face="monospace">action5_road_waypoints</font>, version 1</p>
</body>
</html>

@ -23,6 +23,7 @@ set(BASESET_OTHER_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/route_step.grf
${CMAKE_CURRENT_SOURCE_DIR}/tracerestrict.grf
${CMAKE_CURRENT_SOURCE_DIR}/misc_gui.grf
${CMAKE_CURRENT_SOURCE_DIR}/road_waypoints.grf
)
if (UNIX AND NOT APPLE)

Binary file not shown.

@ -0,0 +1,10 @@
// Automatically generated by GRFCODEC. Do not modify!
// (Info version 32)
// Escapes: 2+ 2- 2< 2> 2u< 2u> 2/ 2% 2u/ 2u% 2* 2& 2| 2^ 2sto = 2s 2rst = 2r 2psto 2ror = 2rot 2cmp 2ucmp 2<< 2u>> 2>>
// Escapes: 71 70 7= 7! 7< 7> 7G 7g 7gG 7GG 7gg 7c 7C
// Escapes: D= = DR D+ = DF D- = DC Du* = DM D* = DnF Du<< = DnC D<< = DO D& D| Du/ D/ Du% D%
// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags
0 road_waypoints.png 8bpp 10 10 64 40 -5 -22 normal
1 road_waypoints.png 8bpp 90 10 64 40 -31 -9 normal
2 road_waypoints.png 8bpp 170 10 64 35 -31 -4 normal
3 road_waypoints.png 8bpp 240 10 64 35 -57 -17 normal

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

@ -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);

@ -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(),
};

@ -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;

@ -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[] = {

Loading…
Cancel
Save