Add signal style flag for no aspect increase behaviour (banner repeater)

This commit is contained in:
Jonathan G Rennison
2022-06-19 01:55:38 +01:00
parent 6e4c4b35e7
commit 7ae06124ae
15 changed files with 104 additions and 18 deletions

View File

@@ -20,6 +20,9 @@
#include "vehicle_type.h"
extern uint8 _extra_aspects;
extern uint64 _aspect_cfg_hash;
extern uint16 _non_aspect_inc_style_mask;
extern uint16 _no_tunnel_bridge_style_mask;
extern bool _signal_sprite_oversized;
/**
@@ -170,7 +173,7 @@ void AddSideToSignalBuffer(TileIndex tile, DiagDirection side, Owner owner);
void UpdateSignalsInBuffer();
void UpdateSignalsInBufferIfOwnerNotAddable(Owner owner);
uint8 GetForwardAspectFollowingTrack(TileIndex tile, Trackdir trackdir);
uint8 GetSignalAspectGeneric(TileIndex tile, Trackdir trackdir);
uint8 GetSignalAspectGeneric(TileIndex tile, Trackdir trackdir, bool check_non_inc_style);
void PropagateAspectChange(TileIndex tile, Trackdir trackdir, uint8 aspect);
void UpdateAspectDeferred(TileIndex tile, Trackdir trackdir);
void FlushDeferredAspectUpdates();
@@ -178,6 +181,12 @@ void UpdateAllSignalAspects();
void UpdateExtraAspectsVariable();
void InitialiseExtraAspectsVariable();
inline void AdjustSignalAspectIfNonIncStyle(TileIndex tile, Track track, uint8 &aspect)
{
extern void AdjustSignalAspectIfNonIncStyleIntl(TileIndex tile, Track track, uint8 &aspect);
if (aspect > 0 && _non_aspect_inc_style_mask != 0) AdjustSignalAspectIfNonIncStyleIntl(tile, track, aspect);
}
inline uint8 GetForwardAspectFollowingTrackAndIncrement(TileIndex tile, Trackdir trackdir)
{
return std::min<uint8>(GetForwardAspectFollowingTrack(tile, trackdir) + 1, _extra_aspects + 1);