summaryrefslogtreecommitdiff
path: root/economy.c
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2005-01-07 23:59:59 +0000
committerdarkvater <darkvater@openttd.org>2005-01-07 23:59:59 +0000
commit116789022c70f8f34c839ef85db8701472b3d634 (patch)
treec343b9a28596934c1b2104f657c6c1fe13651e5b /economy.c
parentb78b576b214512a66dde9b59eea141824d162690 (diff)
downloadopenttd-116789022c70f8f34c839ef85db8701472b3d634.tar.xz
(svn r1418) -Feature: [1098254] (dis)Allow Shares. Add patch options to allow buying/selling of shares (Hackykid)
Diffstat (limited to 'economy.c')
-rw-r--r--economy.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/economy.c b/economy.c
index e15b3bc67..d7a58a749 100644
--- a/economy.c
+++ b/economy.c
@@ -1533,13 +1533,18 @@ int32 CmdBuyShareInCompany(int x, int y, uint32 flags, uint32 p1, uint32 p2)
SET_EXPENSES_TYPE(EXPENSES_OTHER);
p = DEREF_PLAYER(p1);
+ /* Check if buying shares is allowed (protection against modified clients */
+ if (!_patches.allow_shares)
+ return CMD_ERROR;
+
/* Those lines are here for network-protection (clients can be slow) */
if (GetAmountOwnedBy(p, OWNER_SPECTATOR) == 0)
return 0;
+
/* We can not buy out a real player in networking */
if (GetAmountOwnedBy(p, OWNER_SPECTATOR) == 1 && !p->is_ai)
return 0;
-
+
cost = CalculateCompanyValue(p) >> 2;
if (flags & DC_EXEC) {
b = p->share_owners;
@@ -1567,6 +1572,10 @@ int32 CmdSellShareInCompany(int x, int y, uint32 flags, uint32 p1, uint32 p2)
SET_EXPENSES_TYPE(EXPENSES_OTHER);
p = DEREF_PLAYER(p1);
+ /* Check if selling shares is allowed (protection against modified clients */
+ if (!_patches.allow_shares)
+ return CMD_ERROR;
+
/* Those lines are here for network-protection (clients can be slow) */
if (GetAmountOwnedBy(p, _current_player) == 0)
return 0;