|
@@ -484,13 +484,13 @@ Player *DoStartupNewPlayer(bool is_ai)
|
|
|
p->money64 = p->player_money = p->current_loan = 100000;
|
|
|
|
|
|
p->is_ai = is_ai;
|
|
|
p->ai.state = 5; /* AIS_WANT_NEW_ROUTE */
|
|
|
p->share_owners[0] = p->share_owners[1] = p->share_owners[2] = p->share_owners[3] = 0xFF;
|
|
|
|
|
|
p->max_railtype = GetPlayerMaxRailtype(index);
|
|
|
p->avail_railtypes = GetPlayerRailtypes(index);
|
|
|
p->inaugurated_year = _cur_year;
|
|
|
p->face = Random();
|
|
|
|
|
|
GeneratePresidentName(p);
|
|
|
|
|
|
InvalidateWindow(WC_GRAPH_LEGEND, 0);
|
|
@@ -619,12 +619,33 @@ void DeletePlayerWindows(int pi)
|
|
|
DeleteWindowById(WC_ROADVEH_LIST, (-1 << 16) | pi);
|
|
|
DeleteWindowById(WC_SHIPS_LIST, (-1 << 16) | pi);
|
|
|
DeleteWindowById(WC_AIRCRAFT_LIST, (-1 << 16) | pi);
|
|
|
DeleteWindowById(WC_BUY_COMPANY, pi);
|
|
|
}
|
|
|
|
|
|
byte GetPlayerRailtypes(int p)
|
|
|
{
|
|
|
Engine *e;
|
|
|
int rt = 0;
|
|
|
int i;
|
|
|
|
|
|
for(e = _engines, i = 0; i != lengthof(_engines); e++, i++) {
|
|
|
if (!HASBIT(e->player_avail, p))
|
|
|
continue;
|
|
|
|
|
|
/* Skip all wagons */
|
|
|
if ((i >= 27 && i < 54) || (i >= 57 && i < 84) || (i >= 89 && i < 116))
|
|
|
continue;
|
|
|
|
|
|
assert(e->railtype < RAILTYPE_END);
|
|
|
SETBIT(rt, e->railtype);
|
|
|
}
|
|
|
|
|
|
return rt;
|
|
|
}
|
|
|
|
|
|
static void DeletePlayerStuff(int pi)
|
|
|
{
|
|
|
Player *p;
|
|
|
|
|
|
DeletePlayerWindows(pi);
|
|
|
p = GetPlayer(pi);
|
|
@@ -966,13 +987,13 @@ static const SaveLoad _player_desc[] = {
|
|
|
SLE_CONDVAR(Player,money64, SLE_INT64, 1, 255),
|
|
|
|
|
|
SLE_VAR(Player,current_loan, SLE_INT32),
|
|
|
|
|
|
SLE_VAR(Player,player_color, SLE_UINT8),
|
|
|
SLE_VAR(Player,player_money_fraction,SLE_UINT8),
|
|
|
SLE_VAR(Player,max_railtype, SLE_UINT8),
|
|
|
SLE_VAR(Player,avail_railtypes, SLE_UINT8),
|
|
|
SLE_VAR(Player,block_preview, SLE_UINT8),
|
|
|
|
|
|
SLE_VAR(Player,cargo_types, SLE_UINT16),
|
|
|
SLE_CONDVAR(Player, location_of_house, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|
|
|
SLE_CONDVAR(Player, location_of_house, SLE_UINT32, 6, 255),
|
|
|
SLE_CONDVAR(Player, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
|