Merge branch 'save_ext' into signal_tunnels_bridges
This commit is contained in:
@@ -51,8 +51,6 @@ RailtypeInfo _railtypes[RAILTYPE_END];
|
||||
RailType _sorted_railtypes[RAILTYPE_END];
|
||||
uint8 _sorted_railtypes_size;
|
||||
|
||||
assert_compile(sizeof(_original_railtypes) <= sizeof(_railtypes));
|
||||
|
||||
/** Enum holding the signal offset in the sprite sheet according to the side it is representing. */
|
||||
enum SignalOffsets {
|
||||
SIGNAL_TO_SOUTHWEST,
|
||||
@@ -70,8 +68,20 @@ enum SignalOffsets {
|
||||
*/
|
||||
void ResetRailTypes()
|
||||
{
|
||||
memset(_railtypes, 0, sizeof(_railtypes));
|
||||
memcpy(_railtypes, _original_railtypes, sizeof(_original_railtypes));
|
||||
assert_compile(lengthof(_original_railtypes) <= lengthof(_railtypes));
|
||||
|
||||
uint i = 0;
|
||||
for (; i < lengthof(_original_railtypes); i++) _railtypes[i] = _original_railtypes[i];
|
||||
|
||||
static const RailtypeInfo empty_railtype = {
|
||||
{0,0,0,0,0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0,{}},
|
||||
{0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0},
|
||||
0, RAILTYPES_NONE, RAILTYPES_NONE, 0, 0, 0, RTFB_NONE, 0, 0, 0, 0, 0,
|
||||
RailTypeLabelList(), 0, 0, RAILTYPES_NONE, RAILTYPES_NONE, 0,
|
||||
{}, {} };
|
||||
for (; i < lengthof(_railtypes); i++) _railtypes[i] = empty_railtype;
|
||||
}
|
||||
|
||||
void ResolveRailTypeGUISprites(RailtypeInfo *rti)
|
||||
@@ -155,11 +165,9 @@ RailType AllocateRailType(RailTypeLabel label)
|
||||
|
||||
if (rti->label == 0) {
|
||||
/* Set up new rail type */
|
||||
memcpy(rti, &_railtypes[RAILTYPE_RAIL], sizeof(*rti));
|
||||
*rti = _original_railtypes[RAILTYPE_RAIL];
|
||||
rti->label = label;
|
||||
/* Clear alternate label list. Can't use Reset() here as that would free
|
||||
* the data pointer of RAILTYPE_RAIL and not our new rail type. */
|
||||
new (&rti->alternate_labels) RailTypeLabelList;
|
||||
rti->alternate_labels.Clear();
|
||||
|
||||
/* Make us compatible with ourself. */
|
||||
rti->powered_railtypes = (RailTypes)(1 << rt);
|
||||
@@ -2543,7 +2551,7 @@ static void DrawTile_Track(TileInfo *ti)
|
||||
|
||||
if (HasBit(_display_opt, DO_FULL_DETAIL)) DrawTrackDetails(ti, rti);
|
||||
|
||||
if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
|
||||
if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti);
|
||||
|
||||
if (HasSignals(ti->tile)) DrawSignals(ti->tile, rails, rti);
|
||||
} else {
|
||||
@@ -2618,7 +2626,7 @@ static void DrawTile_Track(TileInfo *ti)
|
||||
int depot_sprite = GetCustomRailSprite(rti, ti->tile, RTSG_DEPOT);
|
||||
relocation = depot_sprite != 0 ? depot_sprite - SPR_RAIL_DEPOT_SE_1 : rti->GetRailtypeSpriteOffset();
|
||||
|
||||
if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
|
||||
if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti);
|
||||
|
||||
DrawRailTileSeq(ti, dts, TO_BUILDINGS, relocation, 0, _drawtile_track_palette);
|
||||
}
|
||||
@@ -2869,8 +2877,8 @@ static void GetTileDesc_Track(TileIndex tile, TileDesc *td)
|
||||
{
|
||||
const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
|
||||
td->rail_speed = rti->max_speed;
|
||||
td->railtype = rti->strings.name;
|
||||
td->owner[0] = GetTileOwner(tile);
|
||||
SetDParamX(td->dparam, 0, rti->strings.name);
|
||||
switch (GetRailTileType(tile)) {
|
||||
case RAIL_TILE_NORMAL:
|
||||
td->str = STR_LAI_RAIL_DESCRIPTION_TRACK;
|
||||
|
Reference in New Issue
Block a user