changeset 6405:3f3b30a14c26 draft

(svn r9541) -Codechange: Safeguard the company-buying routines so that the buying player and the bought player need to be two different entities
author celestar <celestar@openttd.org>
date Sun, 01 Apr 2007 10:55:31 +0000
parents e01ad45f9fd9
children ecbbe4b0a9a2
files src/economy.cpp
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -255,6 +255,8 @@
 	Town *t;
 	PlayerID old = _current_player;
 
+	assert(old_player != new_player);
+
 	{
 		Player *p;
 		uint i;
@@ -1774,12 +1776,16 @@
 int32 CmdBuyCompany(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 {
 	Player *p;
+	PlayerID pid = (PlayerID)p1;
 
 	/* Disable takeovers in multiplayer games */
-	if (!IsValidPlayer((PlayerID)p1) || _networking) return CMD_ERROR;
+	if (!IsValidPlayer(pid) || _networking) return CMD_ERROR;
+
+	/* Do not allow players to take over themselves */
+	if (pid == _current_player) return CMD_ERROR;
 
 	SET_EXPENSES_TYPE(EXPENSES_OTHER);
-	p = GetPlayer((PlayerID)p1);
+	p = GetPlayer(pid);
 
 	if (!p->is_ai) return CMD_ERROR;