players.c
changeset 2147 eb6ba42fd216
parent 2140 a04d0142ad65
child 2150 f710b959b1c4
equal deleted inserted replaced
2146:336f4e117777 2147:eb6ba42fd216
   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),