485 |
485 |
486 p->is_ai = is_ai; |
486 p->is_ai = is_ai; |
487 p->ai.state = 5; /* AIS_WANT_NEW_ROUTE */ |
487 p->ai.state = 5; /* AIS_WANT_NEW_ROUTE */ |
488 p->share_owners[0] = p->share_owners[1] = p->share_owners[2] = p->share_owners[3] = 0xFF; |
488 p->share_owners[0] = p->share_owners[1] = p->share_owners[2] = p->share_owners[3] = 0xFF; |
489 |
489 |
490 p->max_railtype = GetPlayerMaxRailtype(index); |
490 p->avail_railtypes = GetPlayerRailtypes(index); |
491 p->inaugurated_year = _cur_year; |
491 p->inaugurated_year = _cur_year; |
492 p->face = Random(); |
492 p->face = Random(); |
493 |
493 |
494 GeneratePresidentName(p); |
494 GeneratePresidentName(p); |
495 |
495 |
618 DeleteWindowById(WC_TRAINS_LIST, (-1 << 16) | pi); |
618 DeleteWindowById(WC_TRAINS_LIST, (-1 << 16) | pi); |
619 DeleteWindowById(WC_ROADVEH_LIST, (-1 << 16) | pi); |
619 DeleteWindowById(WC_ROADVEH_LIST, (-1 << 16) | pi); |
620 DeleteWindowById(WC_SHIPS_LIST, (-1 << 16) | pi); |
620 DeleteWindowById(WC_SHIPS_LIST, (-1 << 16) | pi); |
621 DeleteWindowById(WC_AIRCRAFT_LIST, (-1 << 16) | pi); |
621 DeleteWindowById(WC_AIRCRAFT_LIST, (-1 << 16) | pi); |
622 DeleteWindowById(WC_BUY_COMPANY, pi); |
622 DeleteWindowById(WC_BUY_COMPANY, pi); |
|
623 } |
|
624 |
|
625 byte GetPlayerRailtypes(int p) |
|
626 { |
|
627 Engine *e; |
|
628 int rt = 0; |
|
629 int i; |
|
630 |
|
631 for(e = _engines, i = 0; i != lengthof(_engines); e++, i++) { |
|
632 if (!HASBIT(e->player_avail, p)) |
|
633 continue; |
|
634 |
|
635 /* Skip all wagons */ |
|
636 if ((i >= 27 && i < 54) || (i >= 57 && i < 84) || (i >= 89 && i < 116)) |
|
637 continue; |
|
638 |
|
639 assert(e->railtype < RAILTYPE_END); |
|
640 SETBIT(rt, e->railtype); |
|
641 } |
|
642 |
|
643 return rt; |
623 } |
644 } |
624 |
645 |
625 static void DeletePlayerStuff(int pi) |
646 static void DeletePlayerStuff(int pi) |
626 { |
647 { |
627 Player *p; |
648 Player *p; |
967 |
988 |
968 SLE_VAR(Player,current_loan, SLE_INT32), |
989 SLE_VAR(Player,current_loan, SLE_INT32), |
969 |
990 |
970 SLE_VAR(Player,player_color, SLE_UINT8), |
991 SLE_VAR(Player,player_color, SLE_UINT8), |
971 SLE_VAR(Player,player_money_fraction,SLE_UINT8), |
992 SLE_VAR(Player,player_money_fraction,SLE_UINT8), |
972 SLE_VAR(Player,max_railtype, SLE_UINT8), |
993 SLE_VAR(Player,avail_railtypes, SLE_UINT8), |
973 SLE_VAR(Player,block_preview, SLE_UINT8), |
994 SLE_VAR(Player,block_preview, SLE_UINT8), |
974 |
995 |
975 SLE_VAR(Player,cargo_types, SLE_UINT16), |
996 SLE_VAR(Player,cargo_types, SLE_UINT16), |
976 SLE_CONDVAR(Player, location_of_house, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
997 SLE_CONDVAR(Player, location_of_house, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
977 SLE_CONDVAR(Player, location_of_house, SLE_UINT32, 6, 255), |
998 SLE_CONDVAR(Player, location_of_house, SLE_UINT32, 6, 255), |