players.c
changeset 688 1bf7db6d29b7
parent 679 04ca2cd69420
child 690 3afcad69d4f7
equal deleted inserted replaced
687:0e42e732ad78 688:1bf7db6d29b7
   627 }
   627 }
   628 
   628 
   629 // functionality.
   629 // functionality.
   630 // 0 - make new player
   630 // 0 - make new player
   631 // 1 - make new AI player
   631 // 1 - make new AI player
   632 // 2 - delete player (p1 >> 8) & 0xFF
   632 // 2 - delete player (p2)
   633 // 3 - join player (p1 >> 8) & 0xFF with (p1 >> 16) & 0xFF
   633 // 3 - join player (p1 >> 8) & 0xFF with (p1 >> 16) & 0xFF
   634 int32 CmdPlayerCtrl(int x, int y, uint32 flags, uint32 p1, uint32 p2)
   634 int32 CmdPlayerCtrl(int x, int y, uint32 flags, uint32 p1, uint32 p2)
   635 {
   635 {
   636 	int pi;
   636 	int pi;
   637 	Player *p;
   637 	Player *p;
   684 		break;
   684 		break;
   685 	case 1: // make new ai player
   685 	case 1: // make new ai player
   686 		DoStartupNewPlayer(true);
   686 		DoStartupNewPlayer(true);
   687 		break;
   687 		break;
   688 	case 2: // delete player
   688 	case 2: // delete player
   689 		pi = (byte)(p1 >> 8);
   689 		p = DEREF_PLAYER(p2);
   690 		ChangeOwnershipOfPlayerItems(pi, 255);
   690 
   691 		DeletePlayerStuff(pi);
   691 		/* Only allow removal of HUMAN companies */
       
   692 		if (IS_HUMAN_PLAYER(p2)) {
       
   693 			/* Delete any open window of the company */
       
   694 			DeletePlayerWindows(p2);
       
   695 
       
   696 			/* Show the bankrupt news */
       
   697 			SetDParam(0, p->name_1);
       
   698 			SetDParam(1, p->name_2);
       
   699 			AddNewsItem( (StringID)(p2 + 16*3), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0);
       
   700 
       
   701 			/* Remove the company */
       
   702 			ChangeOwnershipOfPlayerItems(p2, 255);
       
   703 			p->money64 = p->player_money = 100000000;
       
   704 			p->is_active = false;
       
   705 		}
   692 		break;
   706 		break;
   693 
   707 
   694 	case 3: // join player
   708 	case 3: // join player
   695 		pi = (byte)(p1 >> 8);
   709 		pi = (byte)(p1 >> 8);
   696 		ChangeOwnershipOfPlayerItems(pi, (byte)(p1 >> 16));
   710 		ChangeOwnershipOfPlayerItems(pi, (byte)(p1 >> 16));