75 } |
75 } |
76 |
76 |
77 return org_rb; |
77 return org_rb; |
78 } |
78 } |
79 |
79 |
80 bool HasRoadTypesAvail(const PlayerID p, const RoadTypes rts) |
80 bool HasRoadTypesAvail(const CompanyID company, const RoadTypes rts) |
81 { |
81 { |
82 RoadTypes avail_roadtypes; |
82 RoadTypes avail_roadtypes; |
83 |
83 |
84 if (p == OWNER_TOWN || _game_mode == GM_EDITOR || IsGeneratingWorld()) { |
84 if (company == OWNER_TOWN || _game_mode == GM_EDITOR || IsGeneratingWorld()) { |
85 avail_roadtypes = ROADTYPES_ROAD; |
85 avail_roadtypes = ROADTYPES_ROAD; |
86 } else { |
86 } else { |
87 if (!IsValidPlayerID(p)) return false; |
87 if (!IsValidCompanyID(company)) return false; |
88 avail_roadtypes = (RoadTypes)GetPlayer(p)->avail_roadtypes | ROADTYPES_ROAD; // road is available for always for everybody |
88 avail_roadtypes = (RoadTypes)GetCompany(company)->avail_roadtypes | ROADTYPES_ROAD; // road is available for always for everybody |
89 } |
89 } |
90 return (rts & ~avail_roadtypes) == 0; |
90 return (rts & ~avail_roadtypes) == 0; |
91 } |
91 } |
92 |
92 |
93 bool ValParamRoadType(const RoadType rt) |
93 bool ValParamRoadType(const RoadType rt) |
94 { |
94 { |
95 return HasRoadTypesAvail(_current_player, RoadTypeToRoadTypes(rt)); |
95 return HasRoadTypesAvail(_current_company, RoadTypeToRoadTypes(rt)); |
96 } |
96 } |
97 |
97 |
98 RoadTypes GetPlayerRoadtypes(PlayerID p) |
98 RoadTypes GetCompanyRoadtypes(CompanyID company) |
99 { |
99 { |
100 RoadTypes rt = ROADTYPES_NONE; |
100 RoadTypes rt = ROADTYPES_NONE; |
101 |
101 |
102 Engine *e; |
102 Engine *e; |
103 FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) { |
103 FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) { |
104 const EngineInfo *ei = &e->info; |
104 const EngineInfo *ei = &e->info; |
105 |
105 |
106 if (HasBit(ei->climates, _settings_game.game_creation.landscape) && |
106 if (HasBit(ei->climates, _settings_game.game_creation.landscape) && |
107 (HasBit(e->player_avail, p) || _date >= e->intro_date + 365)) { |
107 (HasBit(e->company_avail, company) || _date >= e->intro_date + 365)) { |
108 SetBit(rt, HasBit(ei->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD); |
108 SetBit(rt, HasBit(ei->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD); |
109 } |
109 } |
110 } |
110 } |
111 |
111 |
112 return rt; |
112 return rt; |