From 40fd4377b0d2dbd7b6d3d0d3aa792fa7b1ec3984 Mon Sep 17 00:00:00 2001 From: tron Date: Fri, 3 Mar 2006 19:42:09 +0000 Subject: [PATCH] (svn r3747) Change HASBIT() to return 0/1 instead of 0/value of tested bit, because the name suggests it does the former and current behavior broke in some places in very subtle ways (for example HASBIT(x, 0) != HASBIT(y, 1) doesn't work, returning a bool after HASBIT(x, 9) neither) --- macros.h | 2 +- pathfind.c | 4 ++-- rail.h | 2 +- rail_gui.c | 4 ++-- road_gui.c | 2 +- vehicle.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/macros.h b/macros.h index 75a365d63b..7371d13fa8 100644 --- a/macros.h +++ b/macros.h @@ -57,7 +57,7 @@ static inline int64 BIGMULS(int32 a, int32 b) { #define IS_INSIDE_1D(x, base, size) ( (uint)((x) - (base)) < ((uint)(size)) ) -#define HASBIT(x,y) ((x) & (1 << (y))) +#define HASBIT(x,y) (((x) & (1 << (y))) != 0) #define SETBIT(x,y) ((x) |= (1 << (y))) #define CLRBIT(x,y) ((x) &= ~(1 << (y))) #define TOGGLEBIT(x,y) ((x) ^= (1 << (y))) diff --git a/pathfind.c b/pathfind.c index 9ece86052c..15b8efef58 100644 --- a/pathfind.c +++ b/pathfind.c @@ -388,8 +388,8 @@ void FollowTrack(TileIndex tile, uint16 flags, byte direction, TPFEnumProc *enum tpf.var2 = HASBIT(flags, 15) ? 0x43 : 0xFF; /* 0x8000 */ - tpf.disable_tile_hash = HASBIT(flags, 12) != 0; /* 0x1000 */ - tpf.hasbit_13 = HASBIT(flags, 13) != 0; /* 0x2000 */ + tpf.disable_tile_hash = HASBIT(flags, 12); /* 0x1000 */ + tpf.hasbit_13 = HASBIT(flags, 13); /* 0x2000 */ tpf.tracktype = (byte)flags; diff --git a/rail.h b/rail.h index 794a9fe9a8..cf75f6842a 100644 --- a/rail.h +++ b/rail.h @@ -557,7 +557,7 @@ static inline SignalType GetSignalType(TileIndex tile, Track track) static inline bool HasSemaphores(TileIndex tile, Track track) { assert(IsValidTrack(track)); - return _m[tile].m4 & SIG_SEMAPHORE_MASK; + return (_m[tile].m4 & SIG_SEMAPHORE_MASK) != 0; } /** diff --git a/rail_gui.c b/rail_gui.c index 16b764f9a0..61d2375e9c 100644 --- a/rail_gui.c +++ b/rail_gui.c @@ -291,8 +291,8 @@ static void BuildRailClick_Remove(Window *w) SndPlayFx(SND_15_BEEP); TOGGLEBIT(w->click_state, 16); - _remove_button_clicked = HASBIT(w->click_state, 16) != 0; - SetSelectionRed(HASBIT(w->click_state, 16) != 0); + _remove_button_clicked = HASBIT(w->click_state, 16); + SetSelectionRed(HASBIT(w->click_state, 16)); // handle station builder if (HASBIT(w->click_state, 16)) { diff --git a/road_gui.c b/road_gui.c index 83bb816885..40096a4740 100644 --- a/road_gui.c +++ b/road_gui.c @@ -158,7 +158,7 @@ static void BuildRoadClick_Remove(Window *w) SetWindowDirty(w); SndPlayFx(SND_15_BEEP); TOGGLEBIT(w->click_state, 11); - SetSelectionRed(HASBIT(w->click_state, 11) != 0); + SetSelectionRed(HASBIT(w->click_state, 11)); } static void BuildRoadClick_Landscaping(Window *w) diff --git a/vehicle.c b/vehicle.c index 0074a03551..f6543c84a6 100644 --- a/vehicle.c +++ b/vehicle.c @@ -688,7 +688,7 @@ bool CanFillVehicle(Vehicle *v) bool CanRefitTo(EngineID engine_type, CargoID cid_to) { CargoID cid = _global_cargo_id[_opt_ptr->landscape][cid_to]; - return HASBIT(_engine_info[engine_type].refit_mask, cid) != 0; + return HASBIT(_engine_info[engine_type].refit_mask, cid); } static void DoDrawVehicle(const Vehicle *v)