diff --git a/rail.h b/rail.h index c051a82c6a..f5c1099940 100644 --- a/rail.h +++ b/rail.h @@ -42,7 +42,7 @@ typedef enum RailTileSubtypes { } RailTileSubtype; typedef enum SignalTypes { - /* Stored in m4[0..1] for MP_RAILWAY */ + /* Stored in m4[0..2] for MP_RAILWAY */ SIGTYPE_NORMAL = 0, // normal signal SIGTYPE_ENTRY = 1, // presignal block entry SIGTYPE_EXIT = 2, // presignal block exit diff --git a/rail_cmd.c b/rail_cmd.c index 91ba791b16..ddea310b6d 100644 --- a/rail_cmd.c +++ b/rail_cmd.c @@ -757,7 +757,7 @@ int32 CmdBuildSingleSignal(int x, int y, uint32 flags, uint32 p1, uint32 p2) _m[tile].m5 |= RAIL_TYPE_SIGNALS; // change into signals _m[tile].m2 |= 0xF0; // all signals are on _m[tile].m3 &= ~0xF0; // no signals built by default - _m[tile].m4 = semaphore ? 0x08 : 0; + _m[tile].m4 = semaphore ? SIG_SEMAPHORE_MASK : 0; } if (p2 == 0) { @@ -767,7 +767,7 @@ int32 CmdBuildSingleSignal(int x, int y, uint32 flags, uint32 p1, uint32 p2) } else { if (pre_signal) { // cycle between normal -> pre -> exit -> combo -> pbs ->... - byte type = ((GetSignalType(tile, track) + 1) % 5); + byte type = (GetSignalType(tile, track) + 1) % SIGTYPE_END; SB(_m[tile].m4, 0, 3, type); } else { // cycle between two-way -> one-way -> one-way -> ...