src/road.cpp
changeset 10207 c291a21b304e
parent 9652 0405e98d8e96
child 10208 72c00af5c95d
equal deleted inserted replaced
10206:0050610c0368 10207:c291a21b304e
    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;