From 0819f3a9a0229186fbd0624f590764553c7e7178 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 25 May 2007 08:13:01 +0000 Subject: (svn r9917) -Codechange: prepare some more areas for more road types. --- src/players.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/players.cpp') diff --git a/src/players.cpp b/src/players.cpp index b172f89b1..14a2ab117 100644 --- a/src/players.cpp +++ b/src/players.cpp @@ -472,6 +472,7 @@ Player *DoStartupNewPlayer(bool is_ai) p->share_owners[0] = p->share_owners[1] = p->share_owners[2] = p->share_owners[3] = PLAYER_SPECTATOR; p->avail_railtypes = GetPlayerRailtypes(p->index); + p->avail_roadtypes = GetPlayerRoadtypes(p->index); p->inaugurated_year = _cur_year; p->face = ConvertFromOldPlayerFace(Random()); @@ -609,6 +610,24 @@ byte GetPlayerRailtypes(PlayerID p) return rt; } +byte GetPlayerRoadtypes(PlayerID p) +{ + byte rt = 0; + EngineID i; + + for (i = 0; i != TOTAL_NUM_ENGINES; i++) { + const Engine* e = GetEngine(i); + const EngineInfo *ei = EngInfo(i); + + if (e->type == VEH_ROAD && HASBIT(ei->climates, _opt.landscape) && + (HASBIT(e->player_avail, p) || _date >= e->intro_date + 365)) { + SETBIT(rt, HASBIT(ei->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD); + } + } + + return rt; +} + static void DeletePlayerStuff(PlayerID pi) { Player *p; -- cgit v1.2.3-54-g00ecf