diff --git a/src/engine.cpp b/src/engine.cpp index 6712860f3f..ab8aed61d9 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -342,11 +342,11 @@ void EnginesDailyLoop() DeleteWindowById(WC_ENGINE_PREVIEW, i); e->preview_player_rank++; } - } else if (e->preview_player_rank != 0xFF) { + } else if (e->preview_player_rank != PLAYER_SPECTATOR) { PlayerID best_player = GetBestPlayer(e->preview_player_rank); if (best_player == PLAYER_SPECTATOR) { - e->preview_player_rank = 0xFF; + e->preview_player_rank = PLAYER_SPECTATOR; continue; } @@ -419,7 +419,7 @@ static void NewVehicleAvailable(Engine *e) AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type); /* Now available for all players */ - e->player_avail = (byte)-1; + e->player_avail = (PlayerMask)-1; /* Do not introduce new rail wagons */ if (IsWagon(index)) return; diff --git a/src/engine_base.h b/src/engine_base.h index cff59fcb20..6c018b6746 100644 --- a/src/engine_base.h +++ b/src/engine_base.h @@ -20,9 +20,9 @@ struct Engine : PoolItem { uint16 duration_phase_1, duration_phase_2, duration_phase_3; byte lifelength; byte flags; - uint8 preview_player_rank; + PlayerByte preview_player_rank; byte preview_wait; - byte player_avail; + PlayerMask player_avail; uint8 image_index; ///< Original vehicle image index VehicleType type; ///< type, ie VEH_ROAD, VEH_TRAIN, etc. diff --git a/src/player_type.h b/src/player_type.h index 79d92f691b..0dbd4e6878 100644 --- a/src/player_type.h +++ b/src/player_type.h @@ -42,6 +42,8 @@ typedef TinyEnumT OwnerByte; typedef Owner PlayerID; typedef OwnerByte PlayerByte; +typedef uint8 PlayerMask; + struct Player; typedef uint32 PlayerFace; ///< player face bits, info see in player_face.h diff --git a/src/town.h b/src/town.h index dfdb7fbaab..65cfe6cbb5 100644 --- a/src/town.h +++ b/src/town.h @@ -124,7 +124,7 @@ struct Town : PoolItem { byte statues; /* Player ratings as well as a mask that determines which players have a rating. */ - byte have_ratings; + PlayerMask have_ratings; uint8 unwanted[MAX_PLAYERS]; ///< how many months companies aren't wanted by towns (bribe) PlayerByte exclusivity; ///< which player has exslusivity uint8 exclusive_counter; ///< months till the exclusivity expires