src/rail.cpp
changeset 10207 c291a21b304e
parent 10002 87148ad75853
child 10208 72c00af5c95d
equal deleted inserted replaced
10206:0050610c0368 10207:c291a21b304e
   172 			break;
   172 			break;
   173 	}
   173 	}
   174 	return INVALID_RAILTYPE;
   174 	return INVALID_RAILTYPE;
   175 }
   175 }
   176 
   176 
   177 bool HasRailtypeAvail(const PlayerID p, const RailType railtype)
   177 bool HasRailtypeAvail(const CompanyID company, const RailType railtype)
   178 {
   178 {
   179 	return HasBit(GetPlayer(p)->avail_railtypes, railtype);
   179 	return HasBit(GetCompany(company)->avail_railtypes, railtype);
   180 }
   180 }
   181 
   181 
   182 bool ValParamRailtype(const RailType rail)
   182 bool ValParamRailtype(const RailType rail)
   183 {
   183 {
   184 	return HasRailtypeAvail(_current_player, rail);
   184 	return HasRailtypeAvail(_current_company, rail);
   185 }
   185 }
   186 
   186 
   187 RailType GetBestRailtype(const PlayerID p)
   187 RailType GetBestRailtype(const CompanyID company)
   188 {
   188 {
   189 	if (HasRailtypeAvail(p, RAILTYPE_MAGLEV)) return RAILTYPE_MAGLEV;
   189 	if (HasRailtypeAvail(company, RAILTYPE_MAGLEV)) return RAILTYPE_MAGLEV;
   190 	if (HasRailtypeAvail(p, RAILTYPE_MONO)) return RAILTYPE_MONO;
   190 	if (HasRailtypeAvail(company, RAILTYPE_MONO)) return RAILTYPE_MONO;
   191 	if (HasRailtypeAvail(p, RAILTYPE_ELECTRIC)) return RAILTYPE_ELECTRIC;
   191 	if (HasRailtypeAvail(company, RAILTYPE_ELECTRIC)) return RAILTYPE_ELECTRIC;
   192 	return RAILTYPE_RAIL;
   192 	return RAILTYPE_RAIL;
   193 }
   193 }
   194 
   194 
   195 RailTypes GetPlayerRailtypes(PlayerID p)
   195 RailTypes GetCompanyRailtypes(CompanyID company)
   196 {
   196 {
   197 	RailTypes rt = RAILTYPES_NONE;
   197 	RailTypes rt = RAILTYPES_NONE;
   198 
   198 
   199 	Engine *e;
   199 	Engine *e;
   200 	FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
   200 	FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
   201 		const EngineInfo *ei = &e->info;
   201 		const EngineInfo *ei = &e->info;
   202 
   202 
   203 		if (HasBit(ei->climates, _settings_game.game_creation.landscape) &&
   203 		if (HasBit(ei->climates, _settings_game.game_creation.landscape) &&
   204 				(HasBit(e->player_avail, p) || _date >= e->intro_date + 365)) {
   204 				(HasBit(e->company_avail, company) || _date >= e->intro_date + 365)) {
   205 			const RailVehicleInfo *rvi = &e->u.rail;
   205 			const RailVehicleInfo *rvi = &e->u.rail;
   206 
   206 
   207 			if (rvi->railveh_type != RAILVEH_WAGON) {
   207 			if (rvi->railveh_type != RAILVEH_WAGON) {
   208 				assert(rvi->railtype < RAILTYPE_END);
   208 				assert(rvi->railtype < RAILTYPE_END);
   209 				SetBit(rt, rvi->railtype);
   209 				SetBit(rt, rvi->railtype);