Merge branch 'tracerestrict-sx' into jgrpp

# Conflicts:
#	src/saveload/extended_ver_sl.cpp
#	src/tracerestrict.h
This commit is contained in:
Jonathan G Rennison
2018-12-05 20:15:53 +00:00
2 changed files with 10 additions and 6 deletions

View File

@@ -47,7 +47,7 @@ std::vector<uint32> _sl_xv_discardable_chunk_ids; ///< list of chunks
static const uint32 _sl_xv_slxi_chunk_version = 0; ///< current version os SLXI chunk static const uint32 _sl_xv_slxi_chunk_version = 0; ///< current version os SLXI chunk
const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = {
{ XSLFI_TRACE_RESTRICT, XSCF_NULL, 9, 9, "tracerestrict", NULL, NULL, "TRRM,TRRP,TRRS" }, { XSLFI_TRACE_RESTRICT, XSCF_NULL, 10, 10, "tracerestrict", NULL, NULL, "TRRM,TRRP,TRRS" },
{ XSLFI_TRACE_RESTRICT_OWNER, XSCF_NULL, 1, 1, "tracerestrict_owner", NULL, NULL, NULL }, { XSLFI_TRACE_RESTRICT_OWNER, XSCF_NULL, 1, 1, "tracerestrict_owner", NULL, NULL, NULL },
{ XSLFI_TRACE_RESTRICT_ORDRCND, XSCF_NULL, 2, 2, "tracerestrict_order_cond", NULL, NULL, NULL }, { XSLFI_TRACE_RESTRICT_ORDRCND, XSCF_NULL, 2, 2, "tracerestrict_order_cond", NULL, NULL, NULL },
{ XSLFI_TRACE_RESTRICT_STATUSCND,XSCF_NULL, 1, 1, "tracerestrict_status_cond", NULL, NULL, NULL }, { XSLFI_TRACE_RESTRICT_STATUSCND,XSCF_NULL, 1, 1, "tracerestrict_status_cond", NULL, NULL, NULL },

View File

@@ -87,10 +87,10 @@ typedef uint32 TraceRestrictItem;
* OFFSET values describe the field bit offset * OFFSET values describe the field bit offset
*/ */
enum TraceRestrictItemFlagAllocation { enum TraceRestrictItemFlagAllocation {
TRIFA_TYPE_COUNT = 5, TRIFA_TYPE_COUNT = 6,
TRIFA_TYPE_OFFSET = 0, TRIFA_TYPE_OFFSET = 0,
/* 3 bits reserved for future use */ /* 2 bits reserved for future use */
TRIFA_COND_FLAGS_COUNT = 3, TRIFA_COND_FLAGS_COUNT = 3,
TRIFA_COND_FLAGS_OFFSET = 8, TRIFA_COND_FLAGS_OFFSET = 8,
@@ -138,7 +138,11 @@ enum TraceRestrictItemType {
TRIT_COND_SLOT_OCCUPANCY = 22, ///< Test train slot occupancy state TRIT_COND_SLOT_OCCUPANCY = 22, ///< Test train slot occupancy state
TRIT_COND_TRAIN_OWNER = 24, ///< Test train owner TRIT_COND_TRAIN_OWNER = 24, ///< Test train owner
TRIT_COND_TRAIN_STATUS = 25, ///< Test train status TRIT_COND_TRAIN_STATUS = 25, ///< Test train status
/* space up to 31 */
TRIT_COND_END = 48, ///< End (exclusive) of conditional item types, note that this has the same value as TRIT_REVERSE
//TRIT_REVERSE = 48, ///< Reverse: reserved for future use
/* space up to 63 */
}; };
/** /**
@@ -216,7 +220,7 @@ enum TraceRestrictPhysPropRatioCondAuxField {
}; };
/** /**
* TraceRestrictItem auxiliary type field, for order type conditionals * TraceRestrictItem auxiliary type field, for TRIT_PF_PENALTY
*/ */
enum TraceRestrictPathfinderPenaltyAuxField { enum TraceRestrictPathfinderPenaltyAuxField {
TRPPAF_VALUE = 0, ///< value field is a the pathfinder penalty to use TRPPAF_VALUE = 0, ///< value field is a the pathfinder penalty to use
@@ -487,7 +491,7 @@ static inline void SetTraceRestrictValue(TraceRestrictItem &item, uint16 value)
/** Is TraceRestrictItemType a conditional type? */ /** Is TraceRestrictItemType a conditional type? */
static inline bool IsTraceRestrictTypeConditional(TraceRestrictItemType type) static inline bool IsTraceRestrictTypeConditional(TraceRestrictItemType type)
{ {
return type >= TRIT_COND_BEGIN; return type >= TRIT_COND_BEGIN && type < TRIT_COND_END;
} }
/** Is TraceRestrictItem type field a conditional type? */ /** Is TraceRestrictItem type field a conditional type? */